Beruflich Dokumente
Kultur Dokumente
INTRODUCCIN
ESTRATEGIA DE RESOLUCIN ............................................................................................ 3 EJEMPLO 1.................................................................................................................... 4 CONSTANTES Y VARIABLES ............................................................................................... 5 INTRODUCCIN A LOS DIAGRAMAS DE NASSI-SHNEIDERMAN ................................................. 9 OPERADORES............................................................................................................... 11 OPERADORES ARITMTICOS ................................................................................................11 OPERADORES DE RELACIN.................................................................................................12 OPERADORES LGICOS ......................................................................................................12 EJERCICIO OPERADORES .................................................................................................14
15
DECISIONES SIMPLES. S CONDICIONAL O IF ELSE...................................................................15 DECISIONES MLTIPLES. SENTENCIA SWITCH ...........................................................................17 ALGUNOS CONCEPTOS SOBRE CICLOS REPETITIVOS ....................................................................18 CICLO MIENTRAS. WHILE ...................................................................................................19 CICLO HACER - MIENTRAS. DO WHILE ................................................................................20 CICLOS REPETITIVOS EXACTOS. FOR ......................................................................................22 AUTO EVALUACIN: COMPLETE VERDADERO O FALSO Y JUSTIFIQUE. ....................................... 26 SNTESIS .................................................................................................................... 27 GLOSARIO .................................................................................................................. 28
Elaboracin Gabriel F. Stancanelli Damin A. Asman
Este material pertenece a la materia Programacin I, de la Carrera de Analista de Sistemas de Computacin del INSTITUTO DE TECNOLOGA ORT. Todos los derechos reservados. No esta permitida la reproduccin total o parcial de este apunte, ni su tratamiento informtico, ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo de los titulares. 2da edicin Octubre de 2007.
Programacin I/Mdulo II
Estructuras simples de datos como constantes y variables. Resolucin de problemas utilizando pseudocdigo (lenguaje natural). Uso de las estructuras aprendidas en el mdulo I de la materia. Armado de diagramas de Nassi-Shneiderman para modelar la solucin hecha en pseudocdigo. Tipos de datos bsicos.
Objetivos
Pretendemos que al finalizar de estudiar esta unidad, el alumno logre:
Utilizar correctamente los diagramas de Nassi-Shneiderman Realizar el anlisis de problemas de baja y mediana complejidad Dar la informacin necesaria para completar la gua nmero 1 de trabajos prcticos. Utilizar correctamente las estructuras de control de flujo de un programa. Entender y usar variables y constantes.
Usted debe tener presente que los contenidos presentados en el mdulo no ahondan profundamente en el tema, sino que pretenden ser un recurso motivador para que, a travs de la lectura del material, la bibliografa sugerida, y el desarrollo de las actividades propuestas alcance los objetivos planteados en el presente mdulo. Cada mdulo constituye una gua cuya finalidad es facilitar su aprendizaje.
Programacin I/Mdulo II
Introduccin
En el mdulo I, hemos descrito los pasos para resolver algn problema de la vida cotidiana en un lenguaje natural y ordenado. Esta clase de esquema la llamamos pseudocdigo y sirve para que cualquier persona que quiera resolver el mismo problema, lo entienda y pueda ejecutar tal solucin. Para resolver estos temas, hemos aprendido a utilizar algunas estructuras de control de flujo, como el S Condicional y el ciclo Mientras (condicin)-Hacer Fin-Mientras. En este mdulo, empezaremos a utilizar constantes y variables, es decir, estructuras de datos que nos permitan almacenar datos, cosa que nosotros hacemos naturalmente usando, o bien nuestra memoria, o bien un cuaderno, un libro como bibliografa, etc. Abordaremos el concepto de problemas desde lo computacional, buscando sus soluciones a travs de un programa de computacin. Por ltimo, comenzaremos a utilizar diagramas para modelar estas soluciones. Esta clase de diagramas es conocida a nivel mundial y su lenguaje es ms universal que un idioma como el ingls o espaol.
Estrategia de resolucin
Como trabajamos en el mdulo I, antes de escribir la resolucin del problema en trminos de un diagrama o en pseudocdigo, desarrollamos una pequea explicacin de la situacin y planteamos qu es lo que hacemos para resolver el problema. A esto lo llamamos anlisis y estrategia de solucin. Si se fijan bien, tambin identificamos los datos y agregamos las hiptesis, en caso de ser necesarias, para la resolucin del problema. Cuando transferimos los datos al plano de los programas, tenemos que diferenciarlos en dos tipos: Datos de Entrada y Datos de Salida o informacin.
Flujo de datos
Los datos de entrada ingresan a un proceso, generando informacin. Esta informacin podr ser utilizada luego para utilizar en otro proceso, es decir, utilizndola como datos de entrada y as sucesivamente. Vamos a plantear un primer ejemplo para poder identificar qu es un dato de entrada y qu un dato de salida. Luego de ver este ejemplo, haremos una declaracin formal con el concepto ms claro.
Programacin I/Mdulo II
Ejemplo 1
1 Consigna
Una consultora en sistemas, paga a sus programadores $20 la hora. Dado el nombre de un programador y la cantidad de horas trabajadas, informar el nombre y el importe total a abonarle. Claramente, el problema para la persona que debe pagar los sueldos estara planteado del siguiente modo:
Dados el nombre de un programador y la cantidad de horas trabajadas, informar el nombre y el importe total a abonarle.
Como pueden observar, es similar al planteo de la primera consigna. Sin embargo, hay una parte enunciada que no se incluye en el planteo del problema: el valor de la hora nos es dado como un dato de entrada. Otro dato de entrada ser el nombre, el cual se debe ingresar al programa antes de calcular el total a abonar. Cules son entonces los datos de salida? Pensar en los datos de salida es fundamental a la hora de empezar a resolver la estrategia de resolucin, ya que son justamente lo que el proceso debe poder conseguir. En este ejemplo, los datos de salida son: Nombre, importe total a abonar.
Antes de comenzar a diagramar una solucin, es fundamental identificar los datos de entrada y los de salida, es decir, con qu datos voy a contar para poder obtener la informacin que el problema plantea.
Programacin I/Mdulo II
Ahora que identificamos los datos de entrada y de salida, debemos analizar si con esta informacin es suficiente. En caso de que no lo sea, debemos plantear las hiptesis necesarias hasta completar la descripcin. El siguiente paso es pensar el problema (anlisis y estrategia de solucin) y escribir el pseudocdigo. Siguiendo con el sistema planteado en el Modulo I, la resolucin en pseudocdigo del problema que debemos resolver en este caso ser: 1. Solicitar Nombre del programador. 2. Solicitar cantidad de horas trabajadas. 3. Multiplicar cantidad de horas trabajadas por 20. 4. Mostar por pantalla el nombre ingresado. 5. Mostrar por pantalla el importe a abonar. En algunos casos los procesos trabajan con los datos de entrada y obtienen resultados que pueden ser de entrada a nuevos procesos. En el ejemplo el dato de entrada, Nombre, tambin ser un dato de salida y el resultado (cantidad de horas trabajadas por 20) es el dato de salida, y este puede ser de entrada a otro proceso. Un ejemplo de esto sera si en el planteo anterior, mencionamos que, en caso de tener que cobrar ms de $2000, debemos informar por pantalla un cartel que indique Cobrar retencin de Impuesto a las ganancias. De esta forma, el dato de entrada para saber si hay que imprimir o no este cartel, est dado luego de realizar el primer proceso, con el cual se obtiene cunto debemos pagarle. En este mdulo vamos a trabajar con los datos, los procesos y las salidas. Definimos qu son las constantes y las variables, cmo resolver un problema a travs de un tipo especial de diagramas, y qu son las sentencias y las operaciones que se incluyen en los programas.
Constantes y Variables
Ahora bien, para poder realizar el programa planteado en la consigna 1 y en la mayora de los programas, debemos contar con ciertas herramientas que nos permitan guardar los datos para poder utilizarlos en los diferentes procesos, obteniendo as el resultado esperado. Las constantes son, como su nombre lo indica, datos que no van a cambiar durante todo el programa. En nuestro ejemplo, encontramos un valor constante, que ser el valor de la hora, que ya viene dado en el enunciado. Si releen la consigna vern que se trata del valor 20. Podemos entonces declarar1 una constante llamada VALOR_HORA y asignarle el valor 20. Si hacemos esto, nuestra solucin quedara de este modo:
1 Declarar implica indicarle al programa la utilizacin en estos casos de una constante o una variable. Bsicamente es necesario para poder compilar un programa, es decir, prepararlo para su ejecucin (ver apunte de TI)
Programacin I/Mdulo II
(Notemos que a la constante le asignamos y, mediante el smbolo = le asignamos un valor.) 1. Solicitar Nombre al usuario 2. Solicitar cantidad de horas trabajadas 3. Multiplicar cantidad de horas trabajadas por VALOR_HORA para calcular el importe a abonar. 4. Mostar por pantalla el nombre ingresado 5. Mostrar por pantalla el importe a abonar Notamos que hemos cambiado el valor 20 por el nombre de la constante. De esta forma, si el valor hora cambia, slo debemos modificar el valor de la constante. La ventaja de utilizar una constante en lugar del valor, puede verificarse fcilmente cuando utilizamos este mismo valor en diferentes lugares del programa. Si hubiramos utilizado el valor en cada parte del programa, deberamos cambiarlo todas las veces que apareciera. Al utilizar una constante, nos aseguramos que al cambiar ese valor, se utiliza el mismo en todo el programa y evitamos cometer errores de lgica. Las variables, en cambio, deben su nombre a que, a lo largo del programa, es posible que tomen diferentes valores. Una variable es fsicamente una porcin de la memoria de la mquina. Al declarar una variable en un programa, le estamos indicando a qu parte de la memoria debe ir a buscar o grabar el valor cada vez que la utilicemos. En nuestro ejemplo tenemos como dato de entrada el nombre y la cantidad de horas trabajadas. Estos datos van a variar cada vez que se ejecute el programa, para cada uno de los empleados. Esto nos indica que deben ser variables y no constantes. Si observan las instrucciones de las lneas 3 y 5, en la primera se realiza un clculo y en la segunda se muestra el resultado del mismo. Entonces, existe tambin una variable que ser el resultado del producto de las horas trabajadas por el valor de la hora, cuyo valor ya almacenamos en la constante VALOR_HORA. Cuando definimos una variable en un programa, es decir, cuando la estamos declarando, debemos especificar, adems del nombre, un indicador del tipo de dato que contiene. Algunos tipos de dato son: int: Nmeros enteros cuyo rango es -32.768 a 32.767 float: Nmeros reales. char: Carcter, es decir, valores alfanumricos. String: Es una cadena de cadena de caracteres (tipo char): No existe en C/C++ un formato creado para este tipo de datos, sin embargo, lo utilizaremos en esta materia y se explicar en la materia Taller I cmo hacer una declaracin correcta de este tipo.
Los comentarios en C/C++ pueden escribirse luego de dos barras // o inicializando un prrafo de comentarios con /* (barra y asterisco) y cerrndolo con la inversa */. Para ms datos, ver apunte de TI
3
Programacin I/Mdulo II
Bool: Corresponde al tipo de datos booleano, es decir, solo puede almacenar TRUE (Verdadero) o FALSE (Falso). Al igual que los strings, no existe un formato standard de este tipo en C/C++. Pueden incrementar sus conocimientos respecto de estos tipos de datos en los mdulos de la materia Taller I. La sintaxis de C/C++ para la declaracin de una variable es:
Tipo_de_dato Nombre;
Donde el tipo de dato corresponde a uno de los ya comentados. Conceptualmente, el uso de un nombre correcto para cada variable permitir al programador conocer, no solo el objetivo de sta, sino tambin que valores puede almacenar. De esta forma, utilizaremos como la primer parte del nombre, un identificador para indicar el tipo (Ejemplo: para el tipo de dato int, el identificador ser una i latina en minscula), y finalmente el nombre de la variable, empezando con mayscula. A continuacin mostramos un ejemplo de cmo declarar variables en un programa: /*Declaracin de variables*/
4
int iEdad; float fPromedio; char cSexo; String sNombre; Bool bTieneHijos;
Es importante que el nombre asignado a las variables sea representativo, o mnemotcnico5, es decir, que con slo leer su declaracin, podamos entender qu tipo de dato contiene. Para esto se debe utilizar identificadores y nombre claros. Retomemos el ejemplo y utilicemos variables /*Declaracin de constantes*/ const int VALOR_HORA = 20; /*Declaracin de variables string sNombre; float fCantHoras; float fImporteTotal; */ //Para el nombre del programador. //Para la cantidad de horas trabajadas. //Para almacenar el importe a abonarle.
1. Solicitar Nombre al usuario 2. Guardar nombre en sNombre 3. Solicitar cantidad de horas trabajadas
La declaracin de variables debe hacerse debajo de la declaracin de constantes. Para ms informacin, ver el Apndice de Estilos de la materia TI.
5
Mnemotcnico: Nombre claro que indique qu representa o para qu se utilizar una variable o constante, dentro del programa.
Programacin I/Mdulo II
4. Guardar cantidad en fCantHoras 5. fImporteTotal = fCantHoras * VALOR_HORA 6. Mostar por pantalla: El empleado , sNombre, debe cobrar: $, fImporteTotal Como vemos, a diferencia del ejemplo anterior, ahora estamos indicando a dnde almacenamos 6 los valores que nos ingresa el usuario y el resultado de la operacin, y los utilizamos, por ejemplo, en la instruccin 5.
Almacenar se refiere a la utilizacin de la memoria o archivos para no perder informacin y poder utilizarla Programacin I/Mdulo II 8
Bsicamente, es una combinacin del pseudocdigo y los diagramas de flujo8. En los diagramas no debe incluirse la declaracin de constantes y variables. Estas deben figurar previamente, para que la persona que lee el diagrama, comprenda cuando se usan: de qu tipo son y para qu sirven. Utilizando el ejemplo anterior, realicemos nuestro primer diagrama. Primer diagrama
/*Declaracin de constantes*/ VALOR_HORA = 20; /*Declaracin de variables */ string sNombre; float fCantHoras; float fImporteTotal;
Pseudocdigo
1. Solicitar Nombre al usuario 2. Guardar nombre en sNombre 3. Solicitar cantidad de horas trabajadas 4. Guardar cantidad en fCantHoras 5. fImporteTotal = fCantHoras * VALOR_HORA 6. Mostar por pantalla: El empleado , sNombre, debe cobrar: $, fImporteTotal
7
8
Programacin I/Mdulo II
Diagrama
S
sNombre
S
fCantHoras
fImporteTotal
S
fCantHoras * VALOR_HORA
Vamos ahora a descomponer el diagrama y analizarlo, de manera de poder empezar a incorporar los conocimientos sobre el cmo utilizarlo y en qu situaciones. Representar mensajes por pantalla
Para representar una salida por pantalla, debe utilizarse un rectngulo, en cuyo ngulo superior izquierdo lleve un pequeo cuadrado marcando una S de Salida. De esta forma, es simple interpretar que lo que est en el recuadro, es lo que debe imprimirse. Leer datos desde el teclado
La E en lugar de la S nos marca una Entrada, es decir, que el programa espera que el usuario ingrese un dato.
Programacin I/Mdulo II
10
fImporteTotal
fCantHoras * VALOR_HORA
Para asignarle un dato a una variable, se debe poner a la izquierda de la sentencia el nombre de la variable que va a recibir un valor, una flechita apuntndole ( ) y el valor a asignarle. Este valor puede ser: Un valor propiamente dicho. Una constante (se le asigna el valor de la constante). Una variable (se le asigna el valor de la variable). El resultado de una operacin aritmtica o lgica.
Como sucede en este caso, en el que la variable fImporteTotal recibe el resultado del producto del valor de una constante por una variable, el valor puede darse por alguna operacin aritmtica o lgica.
Esta ltima instruccin del diagrama, sigue siendo una salida, como la S lo indica, sin embargo, sirve para mostrar que es posible combinar datos variables con un texto fijo. Como pueden observar, el texto siempre va entre comillas, y las variables se separan del texto con comas.
Operadores
Los operadores son la herramienta que tenemos para indicarle al programa que debe realizar cierta operacin. Existen operadores aritmticos, de relacin o lgicos. A continuacin, daremos una lista de los operadores bsicos junto con una breve explicacin de cada uno de ellos.
Operadores Aritmticos
Son los operadores que utilizaremos para realizar las operaciones matemticas:
Programacin I/Mdulo II
11
Operador + *
Operacin Suma. Los operandos pueden ser enteros o reales Resta. Los operandos pueden ser enteros o reales. Multiplicacin. Los operandos pueden ser enteros o reales. Divisin. Los operandos pueden ser enteros o reales. Si ambos operandos son enteros el resultado es entero. En el resto de los casos el resultado es real. Como en una calculadora, no es posible dividir por 0. Divisin entera. Sin importar que tipo de datos tengan los operandos, el resultado es la parte entera del resultado. Ej: 3 \ 2 = 1 ya que el resultado de la operacin es 1,5 y tomamos el resultado sin los decimales. Como en una calculadora, no es posible dividir por 0. Mdulo o resto de una divisin entera. Los operandos tienen que ser enteros.
Operadores de relacin
Los operadores de relacin o de comparacin permiten evaluar la igualdad y la magnitud. El resultado de una operacin de relacin es un valor verdadero o falso (1 0, tambin llamados valores booleanos9). Los operadores de relacin son: Operador < > <= >= != == Operacin Primer operando menor que el segundo? Primer operando mayor que el segundo? Primer operando menor igual que el segundo? Primer operando mayor o igual que el segundo? Primer operando distinto que el segundo? Primer operando igual que el segundo? Ejemplo Op1 < Op2 Op1 > Op2 Op1 <= Op2 Op1 >= Op2 Op1 != Op2 Op1 == Op2
Operadores lgicos10
El resultado de una operacin lgica (AND, OR, XOR y NOT) da como resultado un valor lgico, es decir, Verdadero o Falso.
Booleanos.. Para ampliar el concepto utilizado en esta seccin del apunte, puede leerse con ms detalle el apunte de Matemtica.
10
Programacin I/Mdulo II
12
Los operadores lgicos sirven para unir expresiones que devuelvan valores booleanos, como las que utilizan operadores de relacin, y obtener resultados compuestos, segn las tablas de verdad11, que seguramente vern con ms profundidad en matemtica.
Operador
Operacin AND. Da como resultado verdadero si al evaluar cada uno de los operandos el resultado es verdadero. Si uno de ellos es falso, el resultado es falso. Si el primer operando es falso, el segundo operando no es evaluado. OR. El resultado es falso si al evaluar cada uno de los operadores el resultado es falso. Si uno de ellos es verdadero, el resultado es verdadero. Si el primer operando es verdadero, el segundo operando no es evaluado. NOT. El resultado de aplicar este operador es falso si al evaluar su operando el resultado es verdadero, y verdadero en caso contrario. XOR. Da como resultado verdadero si al evaluar cada uno de los operandos el resultado de uno es verdadero y el del otro falso; en otro caso el resultado es falso.
Ejemplo
&&
||
Op1 || Op2
! Op1
Op1 ^ Op2
11
Tablas de verdad.
Programacin I/Mdulo II
13
Ejercicio Operadores
Resuelva las expresiones indicando el valor del resultado. Enve luego el ejercicio resuelto al tutor para su correccin. Sean: a = 5; b = 8; c = 5; d = TRUE; e = FALSE; f = TRUE; Nota: Recuerde que los valores TRUE y FALSE son los valores booleanos. Los primeros ejemplos estn resueltos.
Operadores de relacin expresin a == 5 a <= b (a + b) != c (( a+c ) == 2 * a) a >= c (( b+c ) == a) (( b+c ) == a) c == (b % a) valor TRUE
Operadores lgicos expresin d || f ! (f && d) ! (e || f) e^f !d ^ f !d || (!d ^ f) ! (!e || e) && !d ! (!d || e) && f valor TRUE
Programacin I/Mdulo II
14
Pseudocdigo 1. Solicitar Nombre al usuario 2. Guardar nombre en sNombre 3. Solicitar cantidad de horas trabajadas 4. Guardar cantidad en fCantHoras 5. Si ( fCantHoras <= TOPE_HORAS ) 5.1. Entonces 5.1.1. fImporteTotal fCantHoras * VALOR_HORA_CAT1 5.2. Si no (es decir que es mayor) 5.2.1. fImporteTotal fCantHoras * VALOR_HORA_CAT2 6. fImporteTotal = fCantHoras * VALOR_HORA 7. Mostar por pantalla: El empleado , sNombre, debe cobrar: $, fImporteTotal
Programacin I/Mdulo II
15
Debajo del si esta el entonces. Debajo del no aparecen las instrucciones del sino.
Como se puede apreciar, la diferencia con el diagrama anterior pasa por el bloque de la condicin.
La condicin lgica fCantHoras <= (Menor o Igual) TOPE_HORAS slo puede devolver dos valores, verdadero o falso. En caso de que sea verdadero, entonces se ejecutaran los bloques siguientes del Si. Sino, se ejecutarn los del No.
Programacin I/Mdulo II
16
iCategoria nos indica qu es lo que estamos evaluando. Los nmeros 1, 2 y 3 indican las opciones posibles. Por ltimo, este diagrama incluye un valor default, el cual se ejecuta siempre y cuando la condicin o variable evaluada no corresponda con ninguna opcin. El diagrama final quedara de este modo.
Programacin I/Mdulo II
17
Para hacer las cosas de un modo correcto, utilizaremos un Si condicional para evaluar si, en efecto, pudo calcularse correctamente el importe o no. Para tener en cuenta respecto de la sentencia switch: 1. El valor que se est evaluando debe ser de tipo entero (int) o carcter (char). 2. Si el valor que se est comparando no est comprendido en ninguna de las opciones citadas y no existe la clusula default, no ocurre nada y sigue el flujo del programa. 3. La clusula default es opcional. 4. cuando se implemente una solucin con switch en C/C++, cada opcin debe terminar con una instruccin que indica el fin de la opcin. La sintaxis de la instruccin en este lenguaje es: break.
fCantHoras
S
iCategoria iCategoria
Default
fImporteToal -1
S
Categora invalida
sNombre
Hay ciertas cosas que marcar en este diagrama para que quede claro cmo es el funcionamiento de un ciclo de estas caractersticas: Programacin I/Mdulo II 19
Lectura adelantada: Debemos solicitarle al usuario que escriba el nombre del programador previamente a ejecutar el ciclo. Condicin lgica: Se indica en la parte superior del diagrama que representa el ciclo. Si la condicin se evala como verdadera, comenzar a ejecutarse el ciclo. En este ejemplo, la condicin pregunta si el contenido de la variable sNombre sea diferente que la palabra FIN". Dentro del diagrama del ciclo, hay un grupo de instrucciones que sern el proceso repetitivo. Por ltimo, generalmente ubicado como ultimas instrucciones dentro del ciclo (aunque no es necesario), se le solicita al usuario que ingrese nuevamente el nombre de un programador. Estas son las instrucciones que permitirn, en algn momento, salir del ciclo.
S
Lectura Adelantada sNombre sNombre != FIN (condicin de entrada al bucle) Condicion de entrada. Si se evalua como verdadera, entra al ciclo.
sNombre
Es importante notar que una caracterstica de este proceso repetitivo es el que las instrucciones que estn dentro del ciclo pueden no ejecutarse nunca. Por ejemplo, si en la lectura adelantada el usuario ingresara FIN como nombre del programador, la condicin de entrada al ciclo no se cumplira y directamente terminara el programa.
iCategoria iCategoria
Default fImporteToal -1
S
Categora invalida
sNombre
Programacin I/Mdulo II
21
Las instrucciones que se encuentran dentro de este ciclo van a ejecutarse por lo menos una vez, debido a que la condicin de repeticin se encuentra al final. Algo importante que no debe confundirse, es que este ciclo se ejecuta Mientras se cumple la condicin y no hasta que se cumple. Deben observar como el diagrama fue evolucionando, y como los diferentes bloques de cada estructura de control fueron indicando visualmente como se ejecutar el programa.
Enunciado
Un alumno recin graduado desea conocer el promedio de notas que ha sacado en la facultad. Durante 5 aos, ha cursado 6 materias por ao. Realizar un programa que le solicite al usuario las notas de todas sus materias e informar el promedio de la carrera.
Qu datos de entrada tenemos? Las notas del alumno. Qu datos provistos tenemos? El enunciado ya nos informa la cantidad de materias que curso el alumno ( 6 materias/ao x 5 aos = 30 materias) Cules son los datos de salida? El promedio de la carrera.
Programacin I/Mdulo II
22
/*Declaracin de constantes*/ const int CANT_MATERIAS = 30; /*Declaracin de variables */ float fNota; flota fSumaNoras: float fPromedio; int i: //esta variable la utilizaremos como indice para contra los ciclos del For
Pseudocdigo 1. fSumaNotas = 0 2. Repetir (desde i = 1 hasta CANT_MATERIAS) //Utilizo una constante. 2.1. Mostrar por pantalla: Ingresar la nota nro: , i 2.2. Guardar la nota en fNota 2.3. fSumaNotas = fSumaNotas + fNota 3. Fin Repetir. 4. fPromedio = fSumaNotas / CANT_MATERIAS 5. Mostar por pantalla: El promedio de la carrera es de , fPromedio El diagrama de la solucin ser:
Programacin I/Mdulo II
23
Es ciclo ira incrementando la variable i, solicitando las diferentes notas y sumndolas en fSumaNota. Noten que utilizo la variable i como salida en la solicitud de la nota, de esta forma, cuando i contenga el valor 1, solicitar la primer nota, pero una vez que realice el primer ciclo y valga 2, el cartel solicitar la nota nro 2.. y asi sucesivamente.
Programacin I/Mdulo II
24
2. Ingresar valores para las variables A y B. Una vez cargadas, intercalar los valores (que lo cargado en A quede en B, y viceversa).
3. Dados tres nmeros, informar cul de los tres es el mayor, y su valor (suponer nico mximo).
4. Pedir un nmero tantas veces como necesite, hasta que su valor est comprendido entre 1 y 10.
5. Dados dos nmeros enteros cuya relacin de valores es que el primero es menor o igual al segundo, escribir la secuencia de nmeros que existe entre ambas:
a. Incluyndolos; b. Excluyndolos. c. En la carga, debemos asegurarnos de que la relacin entre los valores es la correcta.
7. Leer una lista de nmeros mientras el promedio entre todos sea menor a 20. Informar la cantidad de valores ledos.
8. Ingresar N juegos de N1 valores enteros cada uno, donde N se informa al comienzo y N1 al cargar cada juego. Emitir el nmero de juego con promedio ms alto y la suma total de todos los juegos.
9. Ingresar una serie de nmeros naturales que termina con -1 e indicar cuntas veces se interrumpe el orden ascendente y cuntos nmeros hay en cada grupo ordenado.
Programacin I/Mdulo II
25
Cuadro de resultados
Nro
VF
Justificacin
Programacin I/Mdulo II
26
Sntesis
Se introdujeron en este mdulo los conceptos de Constante y Variable, estructuras de datos fundamentales que se utilizarn a partir de ahora y probablemente mientras programen. A esto, se sumaron los diagramas de Nassi-Shneiderman y su utilizacin para modelar las soluciones antes planteadas con pseudocdigo. Se hizo mencin de los operadores aritmticos, lgicos y de relacin, y se propuso una actividad para ejercitar con ellos. El alumno debe tener en cuenta que, al conocer estos operadores, las posibilidades de combinacin son infinitas. Al concepto de s condicional introducido en el mdulo I, se agrego la sentencia Switch, la cul lleva al programa por ms flujos diferentes, no solo dos. Al ciclo Mientras (condicin) Fin-Mientras, se le sumaron otras estructuras de procesos repetitivos. El Hacer-Mientras, que permite ejecutar las sentencias una vez antes de preguntar por la condicin de entrada al ciclo nuevamente y el For, el cul se utiliza al conocer la cantidad exacta de repeticiones a realizar. Se propusieron ejercicios de prctica, complementarios de la gua de trabajos prcticos para este mdulo. Nuevamente, se propuso un ejercicio simple de auto evaluacin para verificar los conceptos adquiridos.
Programacin I/Mdulo II
27
Glosario
Constante: Variable: Declaracin en c++: Mnemotecnico: Almacenar: Nassi-Sheneiderman: Diagrama de Flujo: Operador: Tablas de Verdad:
Programacin I/Mdulo II
28