0% encontró este documento útil (0 votos)
41 vistas36 páginas

Programacion Parte03

Cargado por

LucianoLago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas36 páginas

Programacion Parte03

Cargado por

LucianoLago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

Universidad Tecnológica Nacional

Facultad Regional Haedo

Fundamentos de Informática / Computación

Profesora: Lic. Graciela D’Agostino


JTP : Ing. Cristina Pérez Berro
AP: Ing. Juan Pablo Pla

Ing. Cristina Perez Berro 1


Los operadores mixtos son aquellos que permiten realizar una operación aritmética y una asignación.
En general las operaciones se expresan como: variable a asignar operador
variable a asignar operador variable o constante
El lenguaje C presenta los siguientes operadores mixtos :

Operador Ejemplo Forma desarrollada Mapa de Memoria


mixto int x = 5 , y = 8 ; (en otros lenguajes y C) x y
5 8
++ x ++ ; x = x + 1;  6
-- y--; y=y–1;  7
+= x += 4 ; x=x+4;  10
y += x ; y=y+x;  17
-= x -= 2 ; x=x–2;  8
*= x *= y ; x=x*y;  136
/= x /= y ; x=x/y;  8

• El operador mixto ++ incrementa a la variable en +1 y el operador mixto - - la decrementa en -1


• Los demás operadores aplican la operación correspondiente a los dos operandos
• El operando a izquierda del operador siempre es una variable a la cual se le asigna el resultado de la operación y el
operando a derecha puede ser una variable o una constante

Ing. Cristina Perez Berro 2


Las estructuras repetitivas o ciclos permiten ejecutar una acción o un conjunto de acciones un número determinado de
veces.
Podemos distinguir dos tipos de iteración, los ciclos definidos y los ciclos condicionados.
En un ciclo definido, se conoce la cantidad de veces a entrar al ciclo.
En un ciclo condicionado, no se conoce la cantidad de veces a entrar al ciclo, esa cantidad la determina el resultado de
verdad de una condición.

El ciclo definido for tiene como variable de control del ciclo a una variable contadora que llamaremos i
El ciclo for tiene tres argumentos separados por un punto y coma, a saber :
for ( i=valor_inicial ; i <= valor_final ; i ++ ) para valor_inicial < valor_final

i = valor_inicial  inicializa al contador en el valor a partir del cual empezará a contar, por ejemplo i=1 ;
i <= valor_final  condición que controla la entrada y salida del ciclo, siempre que la condición sea verdadera se ingresa al
ciclo para ejecutar la o las acciones que están dentro del cuerpo del ciclo de repetición, solo cuando la condición sea falsa
se puede salir de él. El valor final define la cantidad de veces que se debe repetir la ejecución de las acciones indicadas
dentro del ciclo, por ejemplo i<= 6  siempre que el contador i sea menor o igual a 6 se ingresa al ciclo, solo cuando i sea
igual a 7 se sale de él y teniendo en cuenta que el valor inicial fue 1 esto significa que se ingresó al ciclo las 6 veces que se
deseaban.
i++  expresión que incremente el valor de i en 1 ( contador ), este incremento es el que en algún momento llevará al
contador a valer el valor_final+1, en nuestro ejemplo será el valor 7 y se podrá salir del ciclo.
La primera vez que se ingresa al ciclo se inicializa el contador en el valor inicial, luego se verifica la condición de control y si
esa condición es verdadera se ingresa al ciclo y se ejecutan la o las acciones indicadas en el cuerpo del ciclo, cuando
finaliza la ejecución vuelve al argumento del ciclo for, esta vez incrementa al contador ( i++), verifica la condición de control
y si es verdadera vuelve a entrar a ejecutar las acciones del ciclo para luego volver al argumento incrementando al contador
y verificando la condición. Este proceso se repetirá hasta que la condición de control sea falsa, es decir cuando el contador
es mayor al valor final.
Ing. Cristina Perez Berro 3
Ejemplo 1: Informar los números del 1 al 6

Condición de control Incremento del contador


Inicializar el contador Se evalúa todas la veces Se ejecuta a partir del primer ingreso al
Se ejecuta al entrar por primera vez Mientras sea verdadera entra al ciclo cuerpo del ciclo y hasta el final del ciclo,
al ciclo, (se realiza por única vez). Cuando sea falsa sale del ciclo
luego de cada incremento verifica la
Luego verifica la condición
condición

i = 1 ; i <= 6 ; i ++
Verdadera
En el cuerpo del
entra
ciclo la acción a
realizar es informar
el contador S i
Luego de ejecutada la
acción del cuerpo del
Falsa ciclo vuelve al
sale
argumento del ciclo para
incrementar el contador
Prueba de Escritorio Programa C
i Pantalla # include <stdio.h>
main()
1 1 {
int i;
2 2 system("CLS");
3 3
for (i=1 ; i<=6 ; i++)
4 4 printf(" %d - ", i ) ;

5 5 printf("\n");
6
system("PAUSE");
6 }
7
Ing. Cristina Perez Berro 4
Ejercicio 1 : Escribir la cuenta regresiva del 10 al 0
# include <stdio.h>
main()
i = 10 ; i >= 0 ; i - - {
int i;
system("CLS");
i for (i=10 ; i>=0 ; i--)
S printf(" %d - ", i ) ;

printf("\n");
system("PAUSE");
}

Ejercicio 2 : Escribir los números pares del 2 al 10


# include <stdio.h>
main()
{
i = 2 ; i <= 10; i +=2
int i;
system("CLS");

i for (i=2 ; i<=10 ; i+=2)


S printf(" %d - ", i ) ;

printf("\n");
system("PAUSE");
}

Ing. Cristina Perez Berro 5


Los contadores permiten contar cuantas veces sucede un evento.
Los acumuladores aditivos, permiten sumar los sucesivos valores que puede asumir una
variables o bien sumar una cierta cantidad de veces el valor de una constante

Ejemplo 2 : Ingresar 5 números, calcular e informar la cantidad de números positivos, la


cantidad de números negativos y la cantidad de ceros ingresados.
Los contadores deben
cp = 0 ; cn = 0 ; cc = 0 inicializarse en cero
antes de entrar al ciclo

i = 1 ; i <= 5 ; i ++
El ingreso de la variable
que va a almacenar los
nro sucesivos números a
E procesar se hace dentro
del ciclo for
nro > 0
V F

nro < 0
V F
Dentro del ciclo se
cp ++ incrementan los
cn ++ cc ++ contadores donde
corresponda

cp , cn , cc
s
Fuera del ciclo se
informan los contadores
Ing. Cristina Perez Berro 6
Ejemplo 2 : Ingresar 5 números, calcular e informar la cantidad de números positivos, la
cantidad de números negativos y la cantidad de ceros ingresados.

Diagrama de Flujo Programa C


main()
cp = 0 ; cn = 0 ; cc = 0 {
int i, nro, cp=0, cn=0, cc=0;
i = 1 ; i <= 5 ; i ++ system("CLS");

E nro for ( i=1 ; i<=5 ; i++ )


{
V
nro > 0 F printf("Ingresar un numero: ");
scanf("%d",&nro);
V nro < 0 F

cp ++ if (nro>0) cp++;
cn ++ cc ++ else
if (nro<0) cn++;
cp , cn , cc else cc++;
s }
printf("La cantidad de positivos es: %d\n", cp);
printf("La cantidad de negativos es: %d\n", cn);
printf("La cantidad de ceros es: %d\n", cc);

Cuando hay más de una acción a system("PAUSE");


ejecutarse dentro del ciclo for hay que }
encerarlas entre llaves

Ing. Cristina Perez Berro 7


Ejemplo 3: Dados dos números enteros, informar el producto de ambos por sumas sucesivas

producto = 0 producto nro1 nro2 i

nro1 , nro2 0 5 4 1
E
4 2
i = 1 , i <= nro1 , i ++ ,
8 3
producto = + nro2 12 4
16 5

S producto 20 6

# include<stdio.h>
main()
Acumulador {
aditivo int i, nro1, nro2, producto=0; Al igual que a los contadores, a
suma nro1 system("CLS"); los acumuladores también hay
veces el valor de que inicializarlos en cero antes de
la variable nro2 printf("Ingresar dos numeros enteros: "); usarlos
scanf("%d%d", &nro1, &nro2);

for (i=1 ; i<=nro1 ; i++)


producto = + nro2;

printf("El producto de %d por %d es: %d\n", nro1, nro2, producto);


system("PAUSE");
}
Ing. Cristina Perez Berro 8
Ejemplo 4: Dados 5 números informar el promedio de los positivos, el promedio de los negativos y la
cantidad de ceros.

cp = 0 ; cn = 0 ; cc = 0 ; sp = 0 ; sn = 0

i = 1 ; i <= 5 ; i ++

E
nro

nro > 0
V F

nro < 0
cp ++ V F

sp += nro cn ++ cc ++
sn += nro
cc Cantidad de ceros
s
Hay que verificar que el cp == 0
contador sea distinto de
cero, ya que al ser el Promedio de
“No ingresaron numeros sp / cp
divisor en el cálculo del s positivos “ s positivos
promedio, se evitará así
el error de división por cn == 0
cero
“No ingresaron numeros sn / cn Promedio de
s negativos“ s negativos

Ing. Cristina Perez Berro 9


#include <stdio.h>
main()
{
int i, nro, cp=0, cn=0, cc=0 , sp=0, sn=0;
system("CLS");

for (i=1 ; i<=5 ; i++)


{
printf("Ingresar un numero: "); scanf("%d",&nro);

if (nro>0)
{
cp++; sp+=nro;
}
else
if (nro<0)
{
cn++; sn+=nro;
}
else cc++;
} Informa el resultado de la
división y para que el
printf("Cantidad de ceros ingresados: %d\n", cc); resultado sea real se hace
un casting
if (cp==0) printf("No se ingresaron positivos\n");
else printf("El promedio de los positivos es: %.2f\n", (float) sp/cp );

if (cn==0) printf("No se ingresaron negativos \n");


else printf("El promedio de los negativos es: %.2f\n", (float) sn/cn );

system("PAUSE");
}

Ing. Cristina Perez Berro 10


Son variables que se utilizan para indicar si un evento determinado ocurrió o no ocurrió.
Estas variables toman solo dos valores posibles, primeramente se le asigna un valor clave, por ejemplo
cero para indicar que el evento no ocurrió y solamente cuando el evento esperado ocurre hay que
cambiar el estado de la bandera asignándole otro valor clave, por ejemplo uno, para indicar que el evento
ya ocurrió

Ejemplo 1 : Ingresar 5 números, calcular e informar el mayor de ellos.

Para poder informar el mayor número ingresado hay que comparar cada número entre sí hasta encontrar
al mayor de ellos.
El ciclo for permite ingresar los 5 valores indicados y cada número es ingresado sucesivamente en una
única variable (nro), lo que significa que con cada nuevo número ingresado se pierde el número ingresado
anteriormente por lo tanto la comparación entre ellos se hace imposible.
Esto se soluciona guardando el primer valor en una variable auxiliar (max) , de esta manera se podrá
comparar el segundo valor con el guardado en la variable auxiliar que contiene el primer valor, tal que si
el segundo número es mayor al primero, se reasigna este nuevo valor en la variable auxiliar. Este
proceso se repite para cada nuevo número ingresado , quedando siempre en la variable auxiliar el valor
mayor.
La bandera se utiliza para poder determinar cuando se ha ingresado el primer número y así poder
guardarlo en la variable auxiliar.
La bandera tendrá un valor cero antes de entrar al ciclo que permite el ingreso de los sucesivos números
a procesar y se cambiará al valor uno cuando se detecta que se ha ingresado el primer número del
conjunto. A partir de ese cambio de estado de la bandera, comienza el proceso de compararción para
identificar al mayor número ingresado.
Ing. Cristina Perez Berro 11
Ejemplo 1 : Ingresar 5 números, calcular e informar el mayor de ellos.

1- Se asigna el valor cero a


la bandera antes del ciclo bandera = 0

i = 1 ; i <= 5 ; i ++

2 – Se ingresa el primer
número a procesar
nro
E
3 - Si la bandera está en cero, eso bandera == 0
significa que es la primera vez que se V F
ingresa al ciclo y por lo tanto en nro
5 - A partir del segundo
está el primer número ingresado nro>max ingreso de datos y al
max = nro V F
estar la bandera en 1
4– comienza el proceso de
- Se guarda el primer número bandera = 1 max =nro comparación entre el
ingresado en la variable auxiliar nuevo valor ingresado y el
- Se cambia el estado de la que está en la variable
bandera a 1 para indicar que ya max auxiliar que es el valor
mayor hasta el momento
ingresó el primer número del
conjunto s

6 - Al salir del ciclo se


informa el contenido de la
variable max que es la que
tiene el valor del mayor

Ing. Cristina Perez Berro 12


Ejemplo 1 : Ingresar 5 números, calcular e informar el mayor de ellos.

Diagrama de Flujo Programa C


#include <stdio.h>
bandera = 0 main()
{
i = 1 ; i <= 5 ; i ++ int i, max, nro, bandera=0;
system("CLS");
E nro
for (i=1 ; i<=5 ; i++)
bandera == 0 {
V F printf("Ingresar un numero: ");
scanf("%d",&nro);
nro>max
max = nro V F
if (bandera==0)
bandera = 1 max =nro {
max=nro;
bandera=1;
max }
s else
if (nro>max) max=nro;
}
printf("El numero mayor es: %d\n", max);

system("PAUSE");
}

Ing. Cristina Perez Berro 13


Ejemplo 2 : Ingresar 10 números, calcular e informar el mayor negativo, el menor positivo
y la cantidad de ceros. Diagrama de Flujo

bp = 0 ; bn = 0 ; cc = 0

i = 1 ; i <= 10 ; i ++

E nro

nro > 0

V
bp == 0
F nro < 0
nro<min bn == 0
min = nro V F V F
bp = 1 nro>max
min=nro
max = nro V F cc ++
bn = 1 max=nro

Antes de informar el
valor del máximo o s cc
mínimo hay que
verificar el estado V
bp == 0 F
de sus respectivas
banderas porque si “No ingresaron numeros positivos “ min
existe la posibilidad s s
que alguna de ellas
o ambas no hayan bn == 0
cambiado su estado V F
inicial no hay un
“No ingresaron numeros negativos“ max
máximo o mínimo s s
que informar

Ing. Cristina Perez Berro 14


# include <stdio.h>
main()
{
int i, max, min, nro, bp=0, bn=0, cc=0;
system("CLS");
for (i=1 ; i<=10 ; i++)
{
printf("Ingresar un numero: "); scanf("%d",&nro);
if (nro>0)
if (bp==0)
{
min=nro; bp=1;
}
else
Como este if no tiene salida por el falso no es
{
necesario poner el else correspondiente y por
if (nro<min) min=nro;
esta razón si o si se necesitan las llaves del
}
else que lo contiene
else
if (nro<0)
if (bn==0)
{
max=nro; bn=1;
}
else
{ Aquí también estamos frente a la misma
if (nro>max) max=nro; situación
}
else cc++;
}
printf("La cantidad de ceros es: %d\n", cc);

if (bp==0) printf("No se ingresaron positivos \n" );


else printf("El menor positivo es: %d\n", min);

if (bn==0) printf("No se ingresaron negativo \n" );


else printf("El mayor negativo es: %d\n", max);

system("PAUSE");
}

Ing. Cristina Perez Berro 15


Un ciclo condicionado se utiliza cuando no se conoce la cantidad de veces que se debe repetir la ejecución de
una instrucción o un conjunto de instrucciones. En estas estructuras, la entrada al ciclo y la salida del ciclo está
dada por la evaluación de una condición. Existen dos estructuras condicionadas, a saber:

1 - Estructura Repetitiva while


1- Se ingresa al ciclo evaluando primero una condición.
2- Mientras la condición es verdadera, se ingresa al cuerpo del ciclo de repetición y se ejecutan las intrucciones
que estan dentro de él.
3- Solo cuando la condición sea falsa se puede salir del ciclo de repetición.
4- En consecuencia, a esta estructura se puede ingresar cero, una o varias veces.

Ejemplo 1 : Ingresar un conjunto de números y calcular e informar la cantidad de números ingresados y la suma de todos
esos números. Para fin de ingreso de datos ingresar el número cero.

En este caso la cantidad de números a procesar no es un dato conocido sino, por el contrario, es un dato a obtener
(resultado). La condición de entrada al ciclo y de salida de él está dada por un valor clave en una variable de control del
ciclo que será por lo general un dato de entrada y ese valor clave es un valor que no pertenece al conjunto de datos a
procesar y por lo tanto no debe ser procesado y que tiene como objetivo ser la marca de fin de ciclo.

Ing. Cristina Perez Berro 16


Ejemplo 1 : Ingresar un conjunto de números y calcular e informar la cantidad de números
ingresados y la suma de todos esos números. Para fin de ingreso de datos
ingresar el número cero.

Primero hay que ingresar la


variable de control del ciclo cant = 0 ; sum = 0

E nro
El ciclo while evalúa la condición
antes de entrar al ciclo, si es F
verdadera entra, si es falsa no entra. nro != 0
Por lo tanto, mientras el contenido
de la variable de control sea cant ++ V
distinto al dato clave indicado,
entrará al ciclo sum += nro

La última instrucción antes de E nro


cerrar el ciclo while tiene que ser
ingresar la variable de control del
ciclo, de esta manera se actualiza el cant , sum
S
contenido de la variable de control y
permite una nueva evaluación de la
condición del ciclo. El último valor a
ingresar en esta variable será el
valor clave, en este caso el cero que
permitirá la salida del ciclo while

Ing. Cristina Perez Berro 17


Ejemplo 1 : Ingresar un conjunto de números y calcular e informar la cantidad de números
ingresados y la suma de todos esos números. Para fin de ingreso de datos
ingresar el número cero.

Diagrama de Flujo Programa C


# include <stdio.h>
cant = 0 ; sum = 0 main()
{
E nro int nro, cant=0, sum=0;
system("CLS");
nro != 0
printf("Ingresar un numero entero ( ingresar cero para terminar ): ");
cant ++ scanf("%d", &nro);
while ( nro != 0)
sum += nro {
cant++; sum+=nro;
E nro printf("Ingresar un numero entero: ");
scanf("%d", &nro);
S
cant , sum }

printf("La cantidad de numeros ingresados es %d\n", cant);


printf("La suma de los numeros ingresados es %d\n", sum);

system("PAUSE");
}

Ing. Cristina Perez Berro 18


Ejemplo 2:

Diseñar un programa que permita ingresar la edad de un grupo de


personas e informe:
1- cantidad de personas procesadas
2- edad promedio del grupo
3- mayor edad ingresada
No se conoce la cantidad de personas del grupo, para fin de ingreso de
datos ingresar un número negativo en edad.

La edad es la variable que contiene la


marca de fin, es decir, el contenido de esta
variable controla la entrada al ciclo y la
salida de él

Ing. Cristina Perez Berro 19


cpers=0 ; suma=0 ; bandera=0
1- ingresar la variable que permitirá
E edad entrar o no al ciclo while

edad >= 0
2- El ciclo evalúa la marca de fin
Punto 1 y 2 cpers++ si la condición es verdadera (distinta a
la marca de fin) entra al ciclo
Punto 2 suma += edad Si es falsa, no entra al ciclo

V
bandera == 0 F
edad>max
Punto 3 max=edad V F 3- la última instrucción dentro del ciclo
debe ser ingresar la variable de
bandera=1 max=edad control , de esta manera se actualiza
la condición permitiendo el reingreso
E edad al ciclo o la salida de él

V
cpers != 0 F Verificar si se ingresó al ciclo alguna
vez, antes de informar los resultados.

cpers “No se
procesaron
suma/cpers
datos”
S max S

Ing. Cristina Perez Berro 20


# include <stdio.h>
main()
{
int edad, max, cpers=0, bandera=0, suma=0;
system("CLS");

printf("Ingresar la edad de la persona( ingresar un numero negativo para terminar ): ");


scanf("%d", &edad);
while (edad >= 0)
{
cpers++; suma+=edad;
if (bandera==0)
{
max=edad; bandera=1;
}
else
{
if (edad>max) max=edad;
}

printf("Ingresar la edad de la persona: ");


Como a un ciclo while puede NO
scanf("%d", &edad);
ingresarse nunca, antes de informar
} el resultado de una división cuyo
if (cpers!=0) divisor es un contador que puede
{ quedar en cero y/o hay que informar
printf("La cantidad de personas procesadas es %d\n", cpers); los datos de un máximo o mínimo
printf("La edad promedio del grupo es %d\n", suma/cpers;); SIEMPRE hay que verificar si se
printf("La edad maxima es %d\n", max); ingresó alguna vez al ciclo para evitar
} errores de división por cero o informar
else printf("No se ingresaron datos\n"); variables sin contenido válido
system("PAUSE");
También podría haberse usado la
}
bandera para esta verificación

Ing. Cristina Perez Berro 21


Ejemplo 3:

Diseñar un programa que permita ingresar la edad de un grupo de N


personas e informe:
1- edad promedio del grupo
2- mayor edad ingresada

Se conoce la cantidad de personas, por lo


tanto se sabe cuantas veces se ingresará al
ciclo de repetición  La estructura repetitiva
a elegir es el ciclo definido for

Ing. Cristina Perez Berro 22


suma=0 ; bandera=0

cpers Se ingresa la cantidad de


E
personas
i=1 , i<=cpers , i++
El ciclo definido controla
ingresar al ciclo cpers veces
edad
E

suma += edad El dato a procesar se ingresa


dentro del ciclo

bandera == 0
V F
edad>max
max=edad
V F
reingreso al ciclo
bandera=1
max=edad incrementando la variable de
control ( i ) hasta que la
cpers != 0 condición sea falsa
Como la cantidad de V F
personas (cpers)
puede ser cero, hay eprom = suma/cpers
que verificar la entrada “No se procesaron
al ciclo for antes de datos”
informar (también eprom , max
podría haberse usado
la bandera para S S
realizar dicha
verificación)

Ing. Cristina Perez Berro 23


#include <stdio.h>
main()
{
int i, edad, max, cpers, bandera=0, suma=0;
system("CLS");

printf("Ingresar la cantidad de personas: ");


scanf("%d", &cpers);
for (i=1 ; i<=cpers; i++)
{
printf("Ingresar la edad de la persona: ");
scanf("%d", &edad);
suma+=edad;
if (bandera==0)
{
max=edad; bandera=1;
}
else
{
if (edad>max) max=edad;
}
}
if (cpers!=0)
{
printf("La edad promedio del grupo es %d\n", suma/cpers);
printf("La edad maxima es %d\n", max);
}
else printf("No se ingresaron datos\n");

system("PAUSE");
}

Ing. Cristina Perez Berro 24


Ejemplo 4:

De un cajero electrónico se tiene la siguiente información de cada operación realizada por los cliente,
durante un día :
• nro de cuenta
• tipo de operación ( 1 extracción – 2 depósito – 3 consulta )
• en caso de ser una extracción o depósito, el monto de la operación.
Se pide informar:
1 – Cantidad de extracciones realizadas
3 – Porcentaje de consultas hechas a lo largo del día.
2 – Mayor monto depositado en el cajero y nro de cuenta donde se hizo dicho depósito.
No se conoce la cantidad de operaciones que se realizarán a lo largo del día, para fin de ingreso de
datos ingresar número de cuenta igual cero

Ing. Cristina Perez Berro 25


total = 0 ; cextr = 0 ; ccons = 0 ; bandera = 0
Cuando hay más de un dato de
entrada, en el ciclo while primero se
nrocuenta ingresa solamente el dato de la
E variable de control del ciclo, es
decir la que tiene la marca de fin
nrocuenta != 0
Dentro del ciclo se ingresan los
oper datos restantos .
E A estos datos los llamaremos datos
asociados a la marca de fin
total++

oper != 3
V F

E monto

oper == 2
V F
ccons++
bandera == 0
V F
monto>max
max=monto V F cextr++
cmax=nrocuenta
max=monto
bandera=1
cmax=nrocuenta
La última instrucción dentro
del ciclo debe ser solamente
nrocuenta
E la variable de control con
marca de fin

Continúa en diapositiva siguiente

Ing. Cristina Perez Berro 26


Continuación…

total != 0
V F

ccons*100/total
S

S cextr

“ No se realizaron operaciones “
bandera != 0
V F

“ No se
max, cmax realizaron
depósitos “

S S S

Ing. Cristina Perez Berro 27


#include <stdio.h>
main()
{
int nrocuenta, oper, cmax, total=0, cextr=0, ccons=0, bandera=0;
float monto, max;
system("CLS");

printf("Ingresar numero de cuenta( ingresar cero para terminar ): ");


scanf("%d", &nrocuenta);
while (nrocuenta!=0)
{
printf("Ingresar tipo de operacion( 1-extraccion 2-deposito 3-consulta ): ");
scanf("%d", &oper);
total++;
if (oper!=3)
{
printf("Ingresar monto de la operacion: "); … continuación
scanf("%f", &monto); if (total!=0)
if (oper==2) {
if (bandera==0) printf("La cantidad de extracciones es %d\n", cextr);
{
printf("El porcentaje de consultas es %.2f\n", (float)ccons*100/total);
max=monto; cmax=nrocuenta; bandera=1;
}
else if (bandera!=0)
{ {
if (monto>max) printf("El mayor deposito realizado fue de $%.2f\n", max);
{ printf("Cuenta donde se hizo el deposito: %d\n", cmax);
max=monto; cmax=nrocuenta; }
} else printf("No se hicieron depositos\n");
} }
else cextr++; else printf("No hubo movimientos de cuentas\n");
}
else ccons++;
system("PAUSE");
printf("Ingresar numero de cuenta: "); }
scanf("%d", &nrocuenta);
}
…..continúa 

Ing. Cristina Perez Berro 28


2 - Estructura Repetitiva do - while
1- Se ingresa al ciclo ejecutando las instrucciones que están en el cuerpo del ciclo.
2- La condición de control se evalúa al final del ciclo.  diferencia con respecto al ciclo while
3- Mientras la condición sea verdadera, se ingresa al cuerpo del ciclo de repetición y se ejecutan las intrucciones
que estan dentro de él.
4- Solo cuando la condición sea falsa se puede salir del ciclo de repetición.
5- En consecuencia, a esta estructura se puede ingresar una o varias veces.

Ejemplo 1 : Ingresar dos número y diseñar el siguiente menú de opciones:


1- Suma
2- Resta
3- Multiplicación
4- División
5- Salir
El programa debe permitir elegir la opción deseada e informar el resultado acorde a dicha opción, luego debe volver a
mostrar el menú de opciones para poder elegir una nueva opción.
Repetir este proceso hasta que se elija la opción 5 de salida.

Ing. Cristina Perez Berro 29


E n1 , n2
Entra al cuerpo del “Elegir opcion del menu:
ciclo ejecutando las
1- Suma
instrucciones que
hay dentro de él 2- Resta
3- Multiplicacion
4- Division
S 5- Salir

opcion
E

opcion
1 2 3 4
V n2!=0 F
n1 + n2 n1 - n2 n1 * n2
S n1/n2 “error”
S S S S

opcion != 5 V

Al final se evalúa la condición del F


ciclo, mientras sea verdadera
vuelve a entrar al ciclo.
Cuando sea falsa sale del ciclo

Ing. Cristina Perez Berro 30


#include <stdio.h>
main()
{
int n1, n2, opcion;
system("CLS");
printf("Ingresar dos numeros: ");
scanf("%d%d",&n1,&n2);
do
{
printf("Elegir opcion del menu\n");
printf(“ 1- Suma\n 2- Resta\n 3- Multiplicacion\n 4- Division\n 5- Salir\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1 :
printf("La suma de %d y %d es: %d\n", n1, n2, n1+n2);
break;
case 2 :
printf("La resta de %d y %d es: %d\n", n1, n2, n1-n2);
break;
case 3 :
printf("La multiplicación de %d y %d es: %d\n", n1, n2, n1*n2);
break;
case 4 :
if (n2!=0) printf("La division de %d y %d es: %.2f\n", n1, n2, (float)n1/n2);
else printf("Error de division por cero\n");
break;
}
}
while (opcion!=5) ;
}

Ing. Cristina Perez Berro 31


Ejemplo 2 : Diseñar un algoritmo que permita validar un número de mes. Informar la cantidad de veces
que se ingresó mal dicho número de mes
c=0
c ++

mes
E
mes <1 || mes >12

S c-1

Se entra al ciclo pidiendo un número de mes, el ciclo evalúa si ese número ingresado está fuera de rango, es decir, si es
menor a 1 o mayor a 12, en ese caso, como el número no corresponde a un mes válido se ingresa nuevamente al ciclo y
se pide un nuevo número de mes. Mientras el número ingresado sea un número no válido se repite el ingreso del número
de mes, solo saldrá del ciclo cuando el número ingresado esté dentro del rango 1 .. 12
#include <stdio.h>
main()
{
int mes, c=0;
system("CLS");
do
{
c++;
printf("Ingresar un numero de mes: ");
scanf("%D",&mes);
}
while (mes<1 || mes>12) ;
printf(“El numero de mes se ingreso mal %d veces\n", c-1);
system("PAUSE");
}
Ing. Cristina Perez Berro 32
Ejercicio 1:
Ingresar 20 temperaturas, calcular e informar:
1.Cantidad de temperaturas bajo cero.
2.Promedio de las temperaturas restantes.

Ejercicio 2:
Ingresar 10 números, calcular e informar:
1.Promedio de los negativos
2.El mayor positivo
3.Porcentaje de ceros

Ejercicio 3:
Un comercio necesita un programa para registrar los movimientos de caja a lo largo de un día de trabajo.
El programa debe pedir ingresar el importe inicial de dinero que hay en la caja al abrir el negocio, luego se irán
ingresando los importes de ventas y de pagos que se produzcan a lo largo del día.
Al cierre de la caja, ingresar como importe un valor cero.
Calcular e informar:
1.El importe final de la caja al cierre del día.
2.Cantidad de ventas realizadas (importes positivos)
3.Importe total de los pagos realizados (importes negativos).
4.Importe de la mayor venta realizada.

Ejercicio 4:
Ingresar número de documento, peso y altura de 10 personas, calcular e informar:
1.Cantidad de personas que pesan más de 70 kgr.
2.La altura promedio del grupo.
3.Número de documento, peso y altura de la persona con el mayor número de documento.
Para finalizar el ingreso de datos ingresar cero como número de documento.

Ejercicio 5:
Rehacer el ejercicio anterior para un conjunto de personas.
Para finalizar el ingreso de datos ingresar número de documento igual a cero.
Ing. Cristina Perez Berro 33
www.algofun.com
http://algofun.com/index.php/es/teoria/cpp

Preparado por: Ing. Cristina Pérez Berro 34


www.algofun.com
http://algofun.com/index.php/es/teoria/cpp

Preparado por: Ing. Cristina Pérez Berro 35


www.algofun.com
http://algofun.com/index.php/es/teoria/cpp

Preparado por: Ing. Cristina Pérez Berro 36

También podría gustarte