fundamentos de prgramacion para ingenieros

Upload: carlos-rojas

Post on 07-Jul-2015

153 views

Category:

Documents


0 download

TRANSCRIPT

Fundamentos de programacin para ingenieros

Cristbal Gonzlez Jaime

NDICE

TEMA 1: Algortmico y lenguaje C. Definiciones TEMA 2: El entorno de programacin TEMA 3: Estructura de un programa TEMA 4: Conceptos bsicos Tipos de datos Variables simples Datos de tipo lgico Espacio que ocupan los datos Identificadores. Reglas Instrucciones bsicas Instrucciones de asignacin Formatos de printf(...) y scanf(...) Redondeo Operadores Moldes TEMA 5: Control de un flujo de programa Ejecucin condicionada Bloques repetitivos (bucles) Bloques repetitivos condicionados al inicio. while(...) Bloques repetitivos condicionados al final. do... while( ) Bloques repetitivos con contador. for(...) Diferencias entre for(...) y while(...) TEMA 6: Variables estructuradas I. Arrays Arrays unidimensionales Arrays bidimensionales Cadenas TEMA 7: Ficheros de texto Declaracin de ficheros Apertura de un fichero Cerrar un fichero Lectura y escritura en ficheros Sentencia feof(...) TEMA 8: Variables estructuradas II. Tuplas Declaracin de una tupla Manejo de tuplas TEMA 9: Diseo descendente Sintaxis de una funcin Funciones con retorno Funciones con parmetros de entrada Funciones con parmetros de entrada y salida Caso especial de los arrays TEMA 10: Nmeros aleatorios COLECCIN DE PROBLEMAS RESUELTOS APNDICE. Funciones del lenguaje C

5 7 15 19 21 21 22 23 23 24 26 27 28 30 34 39 40 44 44 46 47 50 57 59 66 70 73 74 74 75 76 77 83 85 86 95 96 97 98 100 102 113 119 155

TEMA 1

Algortmico y lenguaje C. Definiciones

5

El lenguaje AlgortmicoEl lenguaje Algortmico no es un lenguaje de programacin, sino un pseudolenguaje. Su funcin es la de hacer que un programa informtico resulte ms sencillo y fcil de entender por la persona. El lenguaje Algortmico en el que se resuelven los ejercicios en estos apuntes est basado en el lenguaje C (que si es un lenguaje de programacin de alto nivel) y es, prcticamente, la traduccin simplificada al espaol del lenguaje C. Por algoritmo entendemos a una serie de operaciones necesarias para resolver un determinado problema. As, por ejemplo, si queremos hallar cul es el nmero ms alto de una serie, podemos proceder tomando el primer valor, comparndolo con el segundo y quedndonos con el mayor de los dos, el cual ser comparado con el tercero y as sucesivamente hasta llegar al ltimo valor de la serie; pues bien, a esta serie de operaciones repetitivas la podemos considerar el algoritmo solucin de nuestro problema.

El lenguaje CEl lenguaje C es un lenguaje de programacin de alto nivel, esto quiere decir que presenta una lgica y unas expresiones relativamente fciles de comprender y cercanas al razonamiento humano. Un lenguaje de programacin permite la traduccin a cdigo mquina (unos y ceros) a travs del uso de un compilador. Actualmente el lenguaje C est obsoleto como lenguaje de programacin, no obstante sirve de puente para el aprendizaje de C++ y de otros lenguajes de programacin ms potentes. La principal caracterstica del lenguaje C es la portabilidad, esto es, el poder usar un programa en un ordenador ajeno al equipo en el que el programa fue creado, para ello slo es necesario una nueva compilacin en el equipo en el que se desea ejecutar el programa. No existen unas normas fijadas de traduccin a lenguaje C a partir de lenguaje Algortmico, por tanto, es necesario dominar C mediante la realizacin de ejercicios sencillos antes de usar el pseudolenguaje; es del todo desaconsejable pretender manejar slo el lenguaje Algortmico y aprender normas para traducir a lenguaje C los algoritmos para poder crear los programas.

6

TEMA 2

El entorno de programacin

7

IntroduccinHoy en da el lenguaje C es un lenguaje de programacin cuya historia ha estado vinculada a la informtica en sus albores, el lenguaje C con sus ms de 35 aos de historia es un viejo fsil que ha cado en desuso prctico. Actualmente la programacin apunta hacia la programacin orientada al objeto y existen otros lenguajes que trabajan as, entre ellos el C++, hermano mayor del lenguaje C cuyo aprendizaje supone hoy el porqu de la existencia del C. As pues, no existen en la actualidad entornos de programacin especficos para C; no obstante, los entornos de C++ admiten que se trabaje, compile, etc en lenguaje C. Nuestro entorno de programacin ser el Borland C++ Builder, versin 3.0; como estos apuntes no tienen como propsito el aprendizaje del manejo de dicho programa, me limitar a explicar como se prepara el programa para empezar a realizar nuestros proyectos y como podemos salvar estos proyectos.

Comenzar a trabajarAl iniciar el programa aparecen abiertas varias ventanas, para empezar: 1. Debemos ir directamente a la opcin File de la barra de herramientas y seleccionar la opcin New.

2. Nos aparecer una ventana llamada New Items, debemos resaltar la opcin Console Wizard y clicar sobre OK

8

3. Al aceptar, aparece una nueva ventana, en ella debemos asegurarnos de que la opcin Console est seleccionada y que tambin lo est la opcin EXE.

9

4. Una vez pulsamos Finish, nos aparece una ventana con el fondo blanco, debemos borrar lo que aparece escrito en ella, ya que es en esta ventana donde debemos escribir el cdigo fuente (programa en C) de nuestro programa.

Corregir nuestro trabajo1. Una vez hemos terminado de escribir nuestro programa en lenguaje C, debemos compilarlo, con esta operacin veremos si el programa contiene errores de escritura. Si no hemos puesto un punto y coma, falta o sobra una llave, si hemos olvidado declarar una variable, etc, el Borland lo detectar al compilar y nos dir donde est el error. Para compilar el programa pulsamos o bien seleccionamos la opcin Project de la barra de herramientas y pulsamos sobre la opcin Make project. El resultado ser:

10

2. Nos aparece al compilar una nueva ventana con el nombre Compiling, en ella se sealan el nmero de errores y de warnings, que son errores leves con los que el programa podra funcionar. Aceptamos y nos centramos sobre lo siguiente: Debajo de la ventana de nuestro cdigo fuente se amplia una nueva ventana que nos informa de dnde estn los errores y de que tipo de errores se trata. En nuestro caso leemos: [C++Error]Project2.cpp[8]: Statement missing ; Esto quiere decir que nuestro programa, llamado Project2, tiene un error en la lnea 8, tal error es la ausencia de un punto y coma.

11

3. Corregimos el error, ignoramos el warning de momento y volvemos a compilar obteniendo:

Hemos resuelto el problema satisfactoriamente, aceptamos, podemos ejecutar el programa pulsando o bien con la opciones que encontramos en Run: Run, Run to cursor, Step over, etc.

12

Al ejecutar nuestro programa aparece una ventana del viejo sistema operativo MS-DOS, en ella podremos leer aquellos printf (...) que se ejecuten al inicio; en nuestro caso, el programa nos pide el radio de un crculo:

13

Guardar nuestro trabajoUna vez hemos visto que nuestro programa se ejecuta de forma satisfactoria, procedemos a guardarlo en disco. Un programa puede haberse compilado sin errores y sin embargo no realizar correctamente la tarea que se le exige. Para salvar nuestro programa elegimos la opcin File de la barra de herramientas y luego Save as.

Nos aparecer la tpica ventana de Windows para guardar archivos, elegimos donde y ponemos un nombre adecuado a nuestro programa.

14

TEMA 3

Estructura de un programa

15

Partes de un programa en lenguaje CA continuacin se describen las partes de las que puede estar formado un programa en lenguaje C, algunas son prescindibles, como el comentario inicial; otras, en cambio son obligatorias como el bloque de definiciones. En un programa completo en C se distinguen las siguientes partes: 1. Comentario inicial: Se escribe al inicio del cdigo fuente, en l se detalla qu hace el programa, qu ficheros de texto usa, etc. El comentario inicial debe escribirse entre los smbolos /*...*/ para que sea ignorado por el programa compilador; en l, los comentarios apareceran en color azl marino. Es aconsejable aadir, adems, otros comentarios durante el programa que faciliten su posterior entendimiento. 2. Bloque de declaraciones: Son las primeras lneas no ignoradas por el compilador. En este bloque se cargan las libreras de funciones (ficheros include) y se declaran las constantes que van a ser necesarias (define). Los ficheros include que se vern en estos apuntes son: stdio.h math.h stdlib.h string.h malloc.h process.h time.h Librera estndar de entrada y salida. Funciones matemticas. Funciones estndar del lenguaje C. Gestin de cadenas de caracteres. Gestin dinmica de memoria. Permite hacer llamadas al sistema operativo (MS-DOS). Funciones de fecha y hora.

Los ficheros include ms importantes son stdio.h, math.h, stdlib.h y string.h. En el bloque de declaraciones se escribe: #include Las constantes como el nmero , el tamao de un vector o de una cadena, se definen en el bloque de declaraciones de la forma: #define pi 3.1415927 3. Declaracin de funciones: Las funciones creadas por el programador deben ser declaradas en este bloque. Se trata de subprogramas que realizan una determinada funcin y que han sido creados por el programador. Veremos cmo se crean funciones en el tema 9 (Diseo Descendente). int leerfichero(char nomfich[20], double v[N]);

16

4. Programa principal: El programa principal dirige el flujo del programa llamando a las distintas funciones conforme sea necesario. Puede llamarse: void main(void) { ... } int main() { ... return 0; } no necesita retorno.

debe acabar con retorno.

5. Definicin de funciones: Aqu deben ir las distintas funciones que va a usar el programa y que han sido declaradas previamente en el bloque 3. Es aconsejable anteponer un comentario aclaratorio a cada funcin, que aclare cual es su uso, las variables de entrada y de salida, etc. Por ejemplo: /*Funcion que escribe un menu en pantalla, retorna la opcin elegida por el usuario*/ int menu(void) { int opcion; printf("1. Suma.\n2. Resta.\n3. Producto.\n4. Cociente.\n0. Salir.\n\nOpcion: "); scanf("%d", &opcion); system("cls"); return (opcion); }

17

Ejemplo de programa completo en lenguaje CComentario inicial: /*Programa ejemplo de las partes de un programa tpico: Clculo del rea de un crculo.*/ Bloque de declaraciones: #include #define pi 3.1415927 Declaracin de funciones: double area (double radio); Programa principal: void main (void) { double r; double superficie; printf (\nIntroduce el radio del circulo: ); scanf (%lf, &r); superficie=area(r); printf (\nEl area del crculo de radio %lf es: \n %lf, r, superficie); fflush (stdin); getchar (); } Definicin de funciones: /*funcin para calcular el area de un crculo a partir del radio*/ double area (double radio) { double result; result=radio*radio; result=result*pi; return result;}

18

TEMA 4

Conceptos bsicos

19

IntroduccinUna variable puede entenderse que es un espacio (de la memoria), el cual se reserva para el almacenamiento de un dato. El tamao de una variable depende del tipo de dato que en ella se vaya a almacenar. Antes de usar una variable sta debe ser creada, es decir, debemos reservar el espacio de memoria que necesitaremos con posterioridad, una variable se crea en la declaracin de variables; la declaracin de variables es una parte comn de todos los programas en cualquier lenguaje de programacin.

Podemos hacernos una idea grfica de la memoria observando la desfragmentacin de una unidad en un ordenador con el sistema operativo Windows.

20

Tipos de datosLos datos pueden ser simples o compuestos, predefinidos o definidos por el usuario. Por el momento slo nos vamos a ocupar de los datos simples. En estos apuntes se van a ver los siguientes tipos de datos simples: Entero: nmeros enteros (0, 1, 2, 3...) Real: Nmeros decimales (12.345672, 1.7) Carcter: Letras (a, b, c...) Lgico: Slo en algortmico (verdadero o falso) Cadena: Slo en algortmico (palabras y enteros de ms de 10 cifras)

Variables simplesEntendemos por variables simples a aquellas que almacenan datos simples. Anteriormente hemos mencionado que para usar una variable en un programa es necesario que sta haya sido previamente declarada. En la declaracin de una variable debemos especificar siempre el nombre de la variable y el tipo de dato para el que se usar dicha variable. Existen diferencias entre el lenguaje C y el Algortmico a la hora de declarar las variables: 1. En Algortmico las variables se declaran siempre por valor, reservando un espacio en la memoria para introducir un valor. En C las variables se pueden declarar tambin por direccin, reservando una direccin (PUNTERO).

ALGORTMICO Var numero: entero num: real letra: carcter Fvar

C int numero; double num; char letra;

Declaracin por valor.

Declaracin por direccin.

int *numero; double *num; char *letra;

21

2. En Algortmico, las variables son declaradas al principio del programa mediante la sentencia VarFvar. En C, aunque no sea aconsejable en la mayora de los casos, las variables pueden ser declaradas en cualquier momento. Tipo de dato Carcter Entero Real Cadena Lgico Declaracin en Algoritmico letra: cadena num1: entero num2: real nombre: cadena error: logico Declaracin en C char letra; int num1; double num2; char nombre[20]; int error;

Datos de tipo lgicoEn lenguaje C no existe este tipo de datos, las variables de tipo lgico que usamos en Algortmico deben ser declaradas variables de tipo entero int en C. En lenguaje C, el concepto de verdadero o falso viene expresado de la siguiente manera: Todo valor distinto de 0 es verdadero y el valor 0 se considera falso. Ejemplo /*Programa que determina si un nmero es positivo o negativo*/ #include void main(void) { int log; int a;

/*variable de tipo lgico*/

printf("\nIntroduce un numero: "); scanf("%d", &a); log=a