Vous êtes sur la page 1sur 50

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ALGORITMOS Introduccin. El desarrollo de algoritmos es un tema fundamental en el diseo de programas o soluciones. Por lo cual el alumno debe tener buenas bases que le sirvan para poder desarrollar de manera fcil y rpida sus programas. Qu es un algoritmo? La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. Formas de representar algoritmos. Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Ms adelante se vern los diagramas de flujo y pseudocdigo. Pasos a seguir para resolver un problema mediante un algoritmo. 1. Anlisis del problema. Una vez que se ha comprendido lo que se desea hacer, es necesario definir: - Datos de entrada. - Datos de salida - El proceso que se debe realizar para obtener la salida.

Datos de Entrada

Proceso

Datos de Salida

2. Identificacin de las variables. Todos los datos de entrada y salida deben ser identificados mediante variables, as mismo si es necesario tambin se pueden usar otras variables para el proceso. 3. Elaboracin del diagrama de flujo 4. Realizar la prueba de escritorio Una prueba de escritorio es una ejecucin a mano del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ALGORITMOS MEDIANTE DIAGRAMAS DE FLUJO Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travs de sistemas de tratamiento de informacin. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado. Smbolos que se utilizan para representar Diagramas de Flujo. Inicio y fin del algoritmo Flujo de Datos Asignacin de valores a variables Entrada de Datos (por teclado) Salida de Datos (en pantalla) Estructura de seleccin

Ejemplo 1: Problema: Sumar dos nmeros introducidos por teclado. Anlisis: Datos de Entrada: -> 2 nmeros - (variables A y B) Datos de Salida: -> 1 nmero - (variable C) Proceso: -> sumar los 2 nmeros y asignrselo a un tercero - (C=A+B) DIAGRAMA DE FLUJO
INICIO

PRUEBA DE ESCRITORIO Variables A B C Pantalla 6 7 13 13

A,B

C=A+B

FIN

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Ejemplo 2: Problema: Calcular el promedio de 3 nmeros introducidos por teclado. Ejemplo: Entrada Salida 6 7 2 5 Anlisis: Datos de Entrada: -> 3 nmeros - (variables x, y, z) Datos de Salida: -> 1 nmero - (variable prom) Proceso: -> obtener el promedio de 3 nmeros (prom=(x+y+z)/3) DIAGRAMA DE FLUJO PRUEBA DE ESCRITORIO Variables INICIO x y z prom Pantalla 6 7 2 5 5 x,y,z
prom=(x+y+z)/3

prom

FIN

Ejemplo 3: Problema: Dado una distancia en metros convertir a sus correspondientes en centmetros y milmetros. Ejemplo: Entrada Salida 6 600 6000 Anlisis: Datos de Entrada: -> 1 nmero - (variable m) Datos de Salida: -> 2 nmeros - (variables cm , mm) Proceso: -> para el proceso es necesario analizar la relacin 1 metro = 100 centmetros 1 centmetro = 10 milmetros DIAGRAMA DE FLUJO PRUEBA DE ESCRITORIO variables INICIO m cm mm pantalla 6 600 6000 600 6000 m
cm = m * 100 mm = cm *10 cm , mm FIN 3

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Expresiones Lgicas Una expresin lgica nicamente puede tomar dos valores Falso (false) o verdadero (true) Operadores de Relacin Operador > < >= <= == != Operadores Lgicos Existen 3 operadores lgicos: y o - negacin & || Tablas de verdad P V V F F Ejemplos: Expresin (3>2)&(2==2) (2<=4)&(4!=5) (4==5)||(4>5) (4>=4)||(5==6) (9<=8)&(6>5) Verdadero Verdadero Falso Verdadero Falso Resultado Q V F V F & V F F F P V V F F Q V F V F || V V V F Y Significado Mayor que Menor que Mayor o igual que Menor o igual que Igual que Diferente que Ejemplo 6>5 6<5 6 >= 5 6 <= 5 6 == 5 6 != 5 Resultado Verdadero Falso Verdadero Falso Falso Verdadero

Estructura de seleccin (si - no)

SI

CONDICIN ?

NO

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Problema: Dado dos nmeros por teclado, visualizar el mayor Ejemplos: Entrada Salida 6 9 9 8 2 8 inicio

A,B si A A>=B no B

fin
Problema: Dado 1 nmero por teclado, visualizar si es par o impar Ejemplos: Entrada Salida 6 par 9 impar

Problema: Dos Nmero son aceptables si la suma de ambos es menor que 10 o mayor que 20. Realice un algoritmo que dado 2 nmeros por teclado determinar si son aceptables o no aceptables
Ejemplos: Entrada 5 2 12 5 25 1 Salida Aceptables No Aceptables Aceptables

inicio M,N R=M+N si


(R<10)||(R>20)

no
No aceptables

Aceptables

fin

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ESTRUCTURAS DE SELECCION SI NO ANIDADAS PROBLEMA: Algoritmo que permite insertar un nmero por teclado, posteriormente visualiza si el nmero es positivo, negativo o cero. Ejemplos: Entrada 7 0 -6 Salida positivo cero negativo

PROBLEMA: Algoritmo que dado un nmero por teclado, segn sea el nmero mostrar: malo si el nmero es menor que 50, bueno si el nmero es mayor que 50 y menor que 75, y excelente si el nmero es mayor que 75 Ejemplos: Entrada 60 40 82 Salida bueno malo excelente

PROBLEMA: Algoritmo que permite insertar 3 nmeros por teclado y visualiza el mayor Ejemplos: Entrada 6 5 8 7 9 2 4 3 1 Salida 8 9 4

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

PROBLEMA: Algoritmo que visualice divisibles si de dos nmeros introducidos por teclado uno le divide al otro, y no divisibles si ninguno le divide al otro.
Ejemplos: Entrada 6 3 4 8 3 7 Salida divisibles divisibles no divisibles

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ESTRUCTURA DE CONTROL REPETITIVA MIENTRAS


Si cumple la condicin entra al bucle Si NO cumple la condicin sale del bucle

Ejemplos:
Algoritmo que permite visualizar en pantalla los primeros N nmeros naturales Ejemplo: Entrada Salida 7 1234567 Algoritmo que permite visualizar en pantalla los primeros N nmeros naturales Ejemplo: Entrada Salida 7 7654321

Ingeniera de Sistemas Algoritmo que visualiza la cantidad de nmeros pares de N nmeros introducidos por teclado Ejemplo: Entrada Salida 5 3 6 3 4 7 2

Programacin I

Ing. Limber Ruz Molina

Programa que permite insertar N nmeros por teclado, posteriormente visualiza cuntos son menores que 10, cuntos estn entre 10 y 20, y cuntos son mayores que 20 Ejemplo: Entrada Salida 8

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Lenguaje de Programacin C++


Qu es un Lenguaje de Programacin?
Un lenguaje de programacin es un lenguaje diseado para escribir el conjunto de instrucciones que una computadora debe ejecutar. Por lo tanto, un lenguaje de programacin es un modo prctico para que los seres humanos puedan dar instrucciones a una computadora.

Qu es C++?
C++ es un lenguaje de programacin creado a mediados de los aos 1980 por BJarne Stroustrup. La intencin de su creacin fue extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos.

Qu es un compilador?
Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje mquina. De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora. CODIGO FUENTE #include<iostream.h> void main() { cout<<hola mundo; } LENGUAJE MAQUINA

COMPILAR

000010101010100011110010 101100101010010100101010 101010101010010101010101 010010101010000101010100 010101010101010100101010

OPERADORES ARITMETICOS EN C++


Un operador es un smbolo especial que indica al compilador que debe efectuar una operacin matemtica o lgica. C++ reconoce los siguientes operadores aritmticos: SUMA RESTA MULTIPLICACIN DIVISIN MDULO O RESIDUO + * / %

VARIABLES
Una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecucin de un programa, por ejemplo con, sum, A, B, C, con2, con3, etc. Existen ciertas reglas en cuanto a variables. - Las variables deben ser claras y con referencia directa al problema. - No debe tener espacios blancos, ni smbolos extraos en ellas (por ejemplo: con 1, sum A, &e, %r, etc.) - No deben ser palabras reservadas del lenguaje (por ejemplo: cin, if, while, void, switch, else, etc.) 10

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Estructura Bsica de un programa en C++

#include<iostream.h> Declaracin de libreras void main() Declaracin de la funcin principal (main) { Inicio de bloque // cuerpo del programa } fin de bloque
De diagramas de flujo a C++
Para aprender a programar es recomendable primeramente aprender a realizar algoritmos mediante Diagramas de Flujo, como nosotros ya sabemos realizar diagramas de flujo el siguiente paso ser codificar al lenguaje C++ los algoritmos realizados mediante diagramas de flujo, para lo cual, primero veremos la representacin en C++ de los smbolos de los diagramas de flujo:

DIAGRAMA DE FLUJO A,B A,B si A no B

PSEUDOCODIGO leer A,B mostrar A,B

C++ cin>>A>>B; cout<<A<<B;

A>=B

si(A>=B) mostrar A sino mostrar B mientras(con<N) con=con+1

if(A>=B) cout<<A; else cout<<B; while(con<N) con=con+1

con<N si con=con+1

no

Ejemplos:

11

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Nota.- En C++ es necesario declarar a un principio las variables que sern utilizadas en el programa.
Ejemplo 1. Algoritmo que suma dos nmeros DIAGRAMA DE FLUJO PSEUDOCODIGO C++

inicio A=4 B=7 C=A+B C fin Inicio A=4 B=7 C=A+B mostrar C fin

#include<iostream.h> void main() { int A; int B; A=4; B=7; C=A+B; cout<<C; }

Ejemplo 2. Algoritmo que suma dos nmeros introducidos por teclado DIAGRAMA DE FLUJO PSEUDOCODIGO C++

inicio A B C=A+B C fin Inicio leer A leer B C=A+B mostrar C fin

#include<iostream.h> void main() { int A; int B; cin>>A; cin>>B; C=A+B; cout<<C; }

12

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Ejemplo 3. Algoritmo que permite introducir 2 nmeros por teclado y visualiza el mayor DIAGRAMA DE FLUJO PSEUDOCODIGO C++

inicio A,B si A A>=B no B Inicio leer A,B si(A>=B) mostrar A sino mostrar B fin

fin

#include<iostream.h> void main() { int A; int B; cin>>A>>B; if(A>=B) cout<<A; else cout<<B; }

Ejemplo 4. Algoritmo que permite introducir 2 nmeros por teclado, visualiza iguales si ambos son iguales caso contrario visualiza el mayor DIAGRAMA DE FLUJO C++

inicio A,B si iguales A==B si A no A>B no B

fin

#include<iostream.h> void main() { int A; int B; cin>>A>>B; if(A==B) cout<<iguales; else if(A>B) cout<<A; else cout<<B; }

Ejemplo 5. Algoritmo que dado un nmero por teclado (un nmero entre 1 y 100) segn sea el nmero mostrar malo si el nmero es menor a 50, bueno si el nmero es mayor que 50 y menor que 75, y excelente si el nmero es mayor que 75.

13

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

DIAGRAMA DE FLUJO

C++

#include<iostream.h> void main() { int A; cin>>A; if(A<50) cout<<malo; else if(A<75) cout<<bueno; else cout<<excelente; }

Ejemplo 6. Programa que permite visualizar en pantalla los primeros N nmeros naturales DIAGRAMA DE FLUJO PSEUDOCODIGO C++

inicio N con=1 con<=N si con con=con+1 no fin

#include<iostream.h> void main() { int N; Inicio int con; leer N cin>>N; con=1 con=1; mientras(con<=N) while(con<=N) mostrar con { con=con+1 cout<<con; fin con=con+1; } }

Nota.- cuando hay ms de una accin en if, else y while se debe empezar y terminar el bloque con llaves { }

14

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Ejemplo 7. Programa que visualiza la cantidad de nmeros pares, de N nmeros introducidos por teclado. DIAGRAMA DE FLUJO C++

#include<iostream.h> void main() { int N,con,p,num; cin>>N; con=0; p=0; while(con<N) { cin>>num; if(num%2==0) p=p+1; con=con+1; } cout<<p; }
Ejemplo 8. Programa que dado un nmero por teclado visualiza si es primo o no es primo DIAGRAMA DE FLUJO C++ #include<iostream.h> void main() { int num,con,c; cin>>num; con=1; c=0; while(con<=num) { if(num%con==0) c=c+1; con=con+1; } if(c<=2) cout<<primo; else cout<<no primo; }

15

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Ejemplo 9. Programa que dado un nmero por teclado, visualiza la sumatoria de sus dgitos DIAGRAMA DE FLUJO C++

#include<iostream.h> void main() { int A,sum; cin>>A; sum=0; while(A>0) { dig=A%10 sum=sum+dig A=A/10 } cout<<sum; }
Ejemplo 10.Programa que permite insertar N nmeros por teclado, posteriormente visualiza cuntos son menores que 10, cuntos estn entre 10 y 20, y cuntos son mayores que 20 DIAGRAMA DE FLUJO C++

#include<iostream.h> void main() { int N,con,may,men,entre,num; cin>>N; con=1; may=0; men=0; entre=0; while(con<=N) { cin>>num; if(num<10) men=men+1; else if(num<20) entre=entre+1; else may=may+1; con=con+1; } cout<<men<<entre<<may; }

16

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

C++
SALTO DE LNEA.- el salto de lnea es cuando la lnea de impresin en pantalla salta a la siguiente lnea de la pantalla. Se puede saltar de lnea de 2 formas endl (end line fin de linea) \n

COMENTARIOS .- cuando se escriben programas es muy til agregar comentarios que ayuden a explicar lo que realiza un programa. En C++ se pueden utilizar dos tipos de comentarios: Por bloque /* comentario por bloque */ Por lnea // comentario por lnea

ALGORITMOS CON BUCLES ANIDADOS

Condicion1 SI Condicion2 SI Acciones

NO

NO

while(condicion1) { while(condicion2) { Acciones } }

Ejemplos:
1. Programa que visualiza en pantalla segn sea N por teclado Ejemplo Salida 4 1 1 2 1 2 3 1 2 3 4

17

Ingeniera de Sistemas DIAGRAMA DE FLUJO

Programacin I C++

Ing. Limber Ruz Molina

Inicio del while


SI

NO

Inicio del while


SI

NO

fin del while

/* ejemplo 1 De bucles anidados */ #include<iostream.h> void main() { int N,a,b; cin>>N; //lee N por teclado a=1; while(a<=N) { b=1; while(b<=a) { cout<<b<< ; b=b+1; } cout<<endl; //salta de lnea a=a+1; } }

Fin del while

18

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

2. Programa que visualiza en pantalla los primeros N nmeros primos Ejemplo: Entrada Salida 7 1 2 3 5 7 11 13 DIAGRAMA DE FLUJO

C++

/* ejemplo 2 De bucles anidados */


#include<iostream.h> { int N,num,cant,con,c; num=1; cant=0; while(cant<N) { con=1; c=0; while(con<=num) { If(num%con==0) c=c+1; con=con+1; } If(c<=2) { cout<<num; cant=cant+1; } num=num+1; } }

19

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ESTRUCTURAS DE CONTROL REPETITIVAS (BUCLES) DO-WHILE Y FOR


Son aquellas que crean un bucle (repeticin continua de un conjunto de instrucciones) en la ejecucin de un programa respecto de un grupo de sentencias en funcin de una condicin. Existen bsicamente tres estructuras de control repetitivas: while, do-while y for.

DO WHILE (en castellano hacer- mientras)


La estructura do-while es similar a la while con la diferencia de que antes de la condicin primero se realizan las acciones.

do
acciones si no condicin

acciones while(condicin)

A continuacin veremos un ejemplo con while y con do-while para ver las pequeas diferencias: Algoritmo que visualiza en pantalla los primeros N nmeros naturales

WHILE inicio N con=1 con<=N si con con=con+1 no fin

DO WHILE inicio N con=1

C++ #include<iostream.h> void main() { int N,con; cin>>N; con=1; do { cout<<con; con=con+1; } while(con<=N); } fin

con con=con+1 si con<=N no

Nota.- Slo en la estructura do-while se debe colocar ; (punto y coma) despus de la condicin

20

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

1. Programa que permite visualizar verticalmente los dgitos de un nmero Ejemplo Entrada 3265

Salida 5 6 2 3

#include <iostream.h> void main() { int A,dig; cin>>A; do { dig=A%10; cout<<dig<<endl; A=A/10; } while(A>0); }

2. Programa que permite insertar N nmeros por teclado y posteriormente visualiza cuntos son pares Ejemplo: Entrada 5 5 6 4 7 9

Salida 2

#include <iostream.h> void main() { int N,con,num,par; cin>>N; con=1; par=0; do { cin>>num; if(num%2==0) par=par+1; con=con+1; } while(con<=N); cout<<par; }

21

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ESTRUCTURA REPETITIVA FOR


La estructura for es una forma resumida de while, es decir tiene una variable con un valor inicial, una condicin y el incremento de la variable.

i=1 ; i<N ; i=i+1


Variable con condicin inicial

Incremento o decremento de la variable

acciones i

Condicin

Fin del bucle

A continuacin veremos un ejemplo con la estructura for Algoritmo que visualiza en pantalla los primeros 5 nmeros naturales

inicio

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


i i
EJEMPLOS

#include<iostream.h> void main() { int i; for(i=1;i<5;i=i+1) cout<<I<<endl; }

inicio

1. Programa que permite insertar N nmeros por teclado y visualiza cuntos son pares.

#include <iostream.h> void main() { int N,i,num,par; cin>>N; par=0; for(i=0;i<N;i++) { cin>>num; if(num%2==0) par=par+1; } cout<<par; }

22

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

2. Programa que permite insertar N nmeros por teclado, y posteriormente visualiza el nmero ms grande. Ejemplo: Entrada 6 7 2 5 9 1 4 Salida 9

#include <iostream.h> void main() { int N,i,num,may; cin>>N; may=0; for(i=0;i<N;i++) { cin>>num; if(num>may) may=num; } cout<<may; }
3. Programa que visualiza en pantalla la serie que se muestra en el ejemplo, segn N introducido por teclado Ejemplo: Entrada 4

Salida 1 12 123 1234

#include <iostream.h> void main() { int N,i,j; cin>>N; for(i=1;i<=N;i++) { for(j=1;j<=i;j++) cout<<j<<" "; cout<<endl; } }

23

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

TIPOS DE ERRORES EN PROGRAMACION


Generalmente los errores de programacin caen en las siguientes categoras: de sintaxis y lgica ERRORES DE SINTAXIS Ocurren cuando el cdigo se escribe incorrectamente, por ejemplo se escribe mal una sentencia o se emite o se requiere de cierta puntuacin, o no se escriben estructuras completas como por ejemplo la falta de punto y coma, falta de llaves, no declarar variables, etc. Estos errores son fciles de detectar generalmente es el compilador que los identifica y hasta muestra la lnea donde se encuentra dicho error. En Turbo C++ cuando ejecutamos un programa que tiene errores nos muestra un mensaje como se muestra abajo

El mensaje nos muestra que no tenemos ninguna precaucin, pero tiene 3 errores

A continuacin veremos los mensajes de error ms comunes. INGLES Statement missing ; Compound statement missing } Declaration syntax error Undefined symbol Undefined symbol cont Multiple declaration for cont CASTELLANO Le falta ; (quiere decir que al final le falta punto y coma) Le falta } (todas las llaves que se abren deben cerrarse, es muy comn no cerrar todas las llaves) Error de sintaxis en declaracin (quiere decir que le falta alguna palabra) Smbolo indefinido (cuando alguna sentencia por ejemplo cin est mal escrito) No se ha definido la variable cont (sucede cuando nos olvidamos declarar una variable) Mltiple declaracin para cont (las variables slo se deben declarar una vez, si declaramos dos veces nos mostrara este mensaje)

ERRORES DE LGICA.Ocurre cuando una aplicacin no realiza lo esperado, este tipo de errores son difciles de encontrar porque sintcticamente puede ser cdigo vlido y ejecutarse sin realizar ninguna operacin invlida pero puede producir resultados incorrectos, la nica forma de verificar su funcionamiento es probar y analizar los resultados.

24

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

TIPOS DE DATOS EN C++


A toda variable que se usa en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato especfico. Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecucin del programa y a lo largo de toda la vida til del propio programa. Los tipos de datos ms comunes en C++ son:
TIPO DE DATO ESPACIO EN MEMORIA RANGO

Char Short unsigned short int unsigned int long (int) unsigned long Float Double long doubl

8 bits (1 byte) 16 bits (2 bytes) 16 bits (2 bytes) 32 bits (4 bytes) 32 bits (4 bytes) 64 bits (4 bytes) 64 bits (4 bytes) 32 bits (4 bytes) 64 bits (8 bytes) 80 bits (10 bytes)

Caracteres del cdigo ascii -32,768<=X<=32,767 Nmeros muy pequeos, control de bucles pequeos

0 <= X <= 65,535 Nmeros muy pequeos, control de bucles pequeos -2,147,483,648 <= X <= 2,147,483,647 Nmeros pequeos, control de bucles 0 <= X <= 4,294,967,295. Nmeros grandes -2,147,483,648 <= X <= 2,147,483,647 Nmeros grandes 0 <= X <= 4,294,967,295 Distancias astronmicas
1.18e-38 <= X <= 3.40e38 Precisin cientfica (7-dgitos)

2.23e-308<=x<=1.79e308 Precisin cientfica (15-dgitos) 3.37e-4932<=x<=1.18e4932 Precisin cientfica (18-dgitos)

Anlisis del operador aritmtico de la divisin (/). El siguiente programa nos muestra el resultado de la divisin de 2 nmeros. #include <iostream.h> void main() { int a=7,b=2;

float c=a/b;
cout<<c; }

Nota.- Aunque la variable c es de tipo float el resultado ser 3, un valor entero, esto es debido a que el numerador de la divisin es de tipo entero #include <iostream.h> void main() {

float a=7;
int b=2;

float c=a/b;
cout<<c; } 25

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Ahora el resultado ser 3.5, un valor de tipo float (nmero real), esto es debido a que el numerador ahora es de tipo float #include <iostream.h> void main() { int a=7,b=2;

float c=(float) a / b;
cout<<c; } Un nmero o una variable de tipo int, se puede convertir a tipo float antecediendo al mismo la sentencia (float), como se muestra en el programa anterior. El resultado del programa ser 3.5, debido a que el numerador ahora es de tipo float. EJERCICIOS 1. Programa que permite insertar 3 nmeros enteros por teclado y visualiza el promedio. Ejemplo: Entrada Salida 2 4,33333 8 3 #include <iostream.h> void main() { int a,b,c; float prom; cin>>a>>b>>c; prom=(float)(a+b+c)/3; cout<<prom; }

2. Programa que permite insertar 3 nmeros reales por teclado y visualiza el promedio. Ejemplo: Entrada Salida 2.0 4,33333 8.0 3.0 #include <iostream.h> void main() { float a,b,c; float prom; cin>>a>>b>>c; prom=(a+b+c)/3; cout<<prom; 26

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

} 3. Programa que permite insertar N nmeros enteros por teclado y visualiza el promedio. Ejemplo: Entrada Salida 5 3,2 2 2 3 4 5 #include <iostream.h> void main() { int N,con,num,sum; float prom; cin>>N; sum=0; con=0; while(con<N) { cin>>num; sum=sum+num; con++; //esto es igual que con=con+1 } prom=(float)(sum)/N; cout<<prom; }

4. Programa que permite visualizar la sumatoria de los primeros n elementos de la siguiente serie:

Ejemplos: Entrada 1 2 #include <iostream.h> void main() { int n,con=0; float nume=1,deno=2,sum=0; cin>>n; while(con<n) { sum=sum+(nume/deno); nume++; deno++; con++; } cout<<sum; }

Salida 0,5 1,166

27

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

LIBRERAS
Una librera o biblioteca es un conjunto de funciones prefabricadas que pueden ser utilizados por el programador para realizar determinadas operaciones, las mismas deben ser declaradas al inicio del programa (en la cabecera con la sentencia include). Como ejemplo citaremos algunas libreras. iostream.h esta librera contiene funciones que permiten la entrada y salida de datos de un programa, es decir gracias a esta librera podemos utilizar las sentencias cin y cout. math.h contiene funciones matemticas string.h contiene funciones que permiten trabajar con cadenas. time.h contiene funciones que ayudan en la manipulacin de la fecha y hora stdlib.h conio.h

LIBRERA math.h
La librera math.h nos proporciona funciones y constantes matemticas, a continuacin detallamos las ms utilizadas. double pow(double x, double y) Devuelve el valor de x elevado a y. double sin(double x) Devuelve el seno de x. double cos(double x) devuelve el coseno de x double acos(double x) Calcula el arco coseno de x. double asin(double x) Calcula el arco seno de x. double atan(double x) Devuelve el arco tangente en radianes. double exp(double x) Devuelve el valor de e (la base de los logaritmos naturales) elevado a la potencia x. double floor(double x) Redondea x hacia abajo al entero ms cercano. int abs(int j) Calcula el valor absoluto de un entero. double log(double x); Devuelve el logaritmo neperiano de x. double log10(double x) Devuelve el logaritmo decimal de x. double sqrt(double x) Devuelve la raz cuadrada no negativa de x. double tan(double x) Devuelve la tangente de x. Nota.- Los datos que reciben las funciones trigonomtricas son en radianes Constantes matemticas M_E La base de los logaritmos naturales e. M_LOG2E El logaritmo de e de base 2. M_LOG10E El logaritmo de e de base 10. M_PI M_PI_2

28

Ingeniera de Sistemas A continuacin mostramos algunos ejemplos: 1. Programa que calcula el valor de y

Programacin I

Ing. Limber Ruz Molina

x 1 x3

#include <iostream.h> #include <math.h> void main() { double y,x; cin>>x; y=x/(1-pow(x,3)); cout<<y; }
2. Programa que calcula el valor de y.

sen( x) ex

#include <iostream.h> #include <math.h> void main() { double y,x; cin>>x; y=(sqrt(sin(x)))/exp(x); cout<<y; }

29

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

SENTENCIA DE SALTO break


Break nos sirve para escapar de un ciclo repetitivo (while, do while, for) o de la estructura de seleccin mltiple (switch) Cuando dentro del cdigo de un ciclo se introduce la instruccin break, el programa saldr del ciclo (sin importar la condicin lgica) y continuar con el resto del cdigo. Veamos algunos ejemplos: Ejemplo 1. #include <iostream.h> void main() { int num=1; while(num<=10) { if(num==5)

break;
cout<<num<<" "; num=num+1; } } Segn la condicin del while (mientras num<=10) la variable num debera llegar hasta el valor 10, es decir, la salida del programa debera ser: 1 2 3 4 5 6 7 8 9 10 Pero no tendr esa salida, la salida ser: 1 2 3 4 Porque cuando la variable num llegue a 5 la sentencia break rompe el bloque del ciclo while Ejemplo 2. Programa que permite insertar nmeros por teclado indefinidamente, de cada nmero introducido se mostrar si es par o impar, el programa terminar cuando el nmero introducido sea 0. Ejemplo Entrada Salida 3 impar 2 par 7 impar 9 impar 10 par 13 impar 0 #include <iostream.h> void main() { int num; while(1==1) { 30

Ingeniera de Sistemas cin>>num; if(num==0)

Programacin I

Ing. Limber Ruz Molina

break;
if(num%2==0) cout<<"par"<<endl; else cout<<"impar"<<endl; } } Ejemplo 3. La sentencia break tambin es muy til para mejorar la eficiencia de los algoritmos, sobre todo para evitar ciclos innecesarios, como veremos a continuacin. Un nmero trial es cuando en sus dgitos existe por lo menos un 3, por ejemplo 234, 1353 y 5423 son nmeros trial. Realice un programa que dado un nmero por teclado visualice si es o no es trial. Solucin: #include <iostream.h> void main() { int num,dig,tri; tri=0; cin>>num; while(num>0) { dig=num%10; if(dig==3) { tri=1;

break;
} num=num/10; } if(tri==0) cout<<"NO es trial"; else cout<<"es trial"; } El algoritmo consiste en utilizar una variable tri que inicializa en 0, si el nmero tiene algn digito 3 esta variable toma el valor de 1 lo cual nos indica que el nmero si es trial. La sentencia break nos sirve para saltar el bucle while cuando encuentra un dgito 3 ya que sera innecesario seguir consultando los dems dgitos porque es suficiente que en el nmero haya un dgito 3.

31

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

SENTENCIA SWITCH
La sentencia switch da una alternativa mucho ms refinada a la necesidad de utilizar o implementar mltiples sentencias condicionales if cuando deseamos que una determinada variable tome diferentes valores para cada condicin.

Dentro de la sentencia switch es necesario la implementacin de , - (abrir/cerrar el ciclo); tambin para cada case (en espaol caso), es necesario que al final de cada case se rompa la misma con la sentencia break; la palabra default se utiliza para realizar algunas acciones en caso de que no cumpla ninguna de los anteriores casos. A continuacin veremos algunos ejemplos: Ejemplo 1. Programa que dado un nmero por teclado visualiza su correspondiente da de la semana. #include <iostream.h> void main() { int dia; cout<<"introduzca un numero"; cin>>dia; switch(dia) { case 1: cout<<"lunes"; break; case 2: cout<<"martes"; break; case 3: cout<<"miercoles"; break; case 4: cout<<"jueves"; break; case 5: cout<<"viernes"; break; case 6: cout<<"sabado"; break; case 7: cout<<"domingo"; break; default: cout<<"no es dia de la semana"; 32

Ingeniera de Sistemas }

Programacin I

Ing. Limber Ruz Molina

} Ejemplo2. Programa que permite introducir 2 nmeros y posteriormente nos pide una operacin matemtica (+ , - , * , / ) y segn la operacin matemtica que se introduzca visualiza el resultado correspondiente. #include <iostream.h> void main() { int A,B,D;

char ope;
cout<<"introduzca dos numeros"; cin>>A>>B; cout<<"introduzca una operacion matematica"; cin>>ope; switch(ope) { case '+': D=A+B; cout<<D; break; case '-': D=A-B; cout<<D; break; case '*': D=A*B; cout<<D; break; case '/': D=A/B; cout<<D; break; default: cout<<"no es operacion matematica"; } }

33

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

ARREGLOS (ARRAYS)
Los arreglos son estructuras de datos que consisten en elementos de informacin del mismo tipo relacionados entre s. Los arreglos son estructuras de datos estticas porque su tamao no cambia una vez que han sido creadas. Un arreglo es un grupo de posiciones contiguas de memoria, las cuales tienen el mismo nombre y el mismo tipo. Los arreglos pueden ser unidimensionales (vectores) bidimensionales (matrices).

Ejemplo: VECTOR
12 14 17 8 10 19 13 7 9 6 92

MATRIZ

3 4 VECTORES 3
Todos los datos de un vector deben ser del mismo tipo de dato. Cmo algunos ejemplos de vectores podramos tener:

5 6 5

24

10 4 7 8

Vector de Enteros Vector de Reales Vector de Caracteres

12 14 17 8 10

19

13

92

1.3 0.05 a 8

4.0 ?

6.7 1.0 4.7 9.002 j 1 - % Uruguay Brasil

Vector de Cadenas

Bolivia Argentina

Per

Un vector debe tener un nombre (sin espacios) Por ejemplo vec =


12 14 17 8 10 19 13 7 9 6 92

Nombre del vector

Elementos del vector vec

Cada elemento de un vector tiene una posicin, la misma que empieza en cero vec = POSICIONES
12
vec[0]

14
vec[1]

17
vec[2]

8
vec[3]

19
vec[4]

13
vec[5]

7
vec[6]

92
vec[9]

vec[7] vec[8]

34

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Entonces podemos ver que cada elemento de un vector tiene una posicin y un dato Por ejemplo: vec[0] tiene el dato 12 vec[3] tiene el dato 8 vec[8] tiene el dato 6 .. Cada elemento del vector puede ser manejado como cualquier variable. Por ejemplo: int A = vec[0] + vec[8]; int B = 2 + vec[3]; vec[0] = A + B; // A = 12 + 6 = 18 // B = 2 + 8 = 10 // vec[0] = 18 + 10 = 28

Declaracin de vectores en C++ Los arreglos ocupan espacio en la memoria. El programador especifica el tipo de los elementos y la cantidad de elementos mximo que puede almacenar el vector. Entonces para declarar al vector vec del ejemplo anteriore sera:

int vec[10]
Tipo de elementos del vector Nombre del vector Tamao del vector

Nota. Un ERROR muy comn al programar con vectores es manejar posiciones que no existen en el vector. Por ejemplo en el vector vec no se podra utilizar el elemento vec[10] vec[11], porque no existen las posiciones 10 y 11, lo cual generar un error. Entonces es mejor declarar vectores con tamaos ms grandes.

EJERCICIOS 1.- Realizar un programa para visualizar los datos de un vector #include <iostream.h> void main() { int vec[]={1,3,5,6,2}; for(int i=0;i<5;i++) cout<<vec[i]<<" "; }

Se pueden dar valores al vector directamente al momento de declarar el vector

35

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

2. Realizar un programa para insertar N nmeros en un vector y posteriormente visualizarlos en pantalla #include <iostream.h> void main() { int N,num; int A[15]; cin>>N; for(int i=0;i<N;i++) { cin>>num; A[i]=num; } for(int j=0;j<N;j++) cout<<A[j]<<" "; } 3. Realizar un programa para insertar 5 nmeros en un vector y posteriormente visualice el promedio. #include <iostream.h> void main() { int num,sum=0; float prom; int A[15]; for(int i=0;i<5;i++) { cin>>num; A[i]=num; } for(int j=0;j<5;j++) sum=sum+A[j]; prom=(float)(sum)/5; cout<<prom; } 4. Realice un programa que permita insertar N nmeros en un vector y posteriormente visualice cuntos son mayores al ltimo nmero. #include <iostream.h> void main() { int N,num,cant=0,ultimo; int A[15]; cin>>N; for(int i=0;i<N;i++) { cin>>num; A[i]=num;
36

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

} ultimo=A[N-1]; for(int j=0;j<N;j++) if(A[j]>ultimo) cant++; cout<<cant; } 5. Realice un programa que permita insertar 10 nmeros por teclado en un vector A, posteriormente copie los nmeros pares a un vector B y visualice los datos del vector B. #include <iostream> void main() { int N,num; int A[10],B[10]; for(int i=0;i<10;i++) { cin>>num; A[i]=num; } int con=0; for(int j=0;j<10;j++) if(A[j]%2==0) { B[con]=A[j]; con++; } for(int k=0;k<con;k++) cout<<B[k]<<" "; }

37

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

CARCTER (char)
char (character) es un tipo de dato que puede almacenar cualquier carcter del cdigo ascii. Un carcter siempre debe estar entre comillas simples (apstrofes) Ejemplos: 1 , f , F , & , % , ) , a , A , 3 , - , . , w , 6 , / CODIGO ASCII

A continuacin veremos algunos programas con el manejo de caracteres. Programa que visualiza el mayor de dos caracteres introducidos por teclado Como cada carcter est asociado a un nmero decimal del cdigo ascii, el carcter mayor ser el carcter cuyo valor decimal sea mayor, por ejemplo a es mayor que A porque el valor decimal de a es mayor que el de A char a,b; cin>>a>>b; if(a>b) cout<<"el mayor es "<<a; else cout<<"el mayor es "<<b;

38

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

Programa permite introducir dos nmeros y un signo (operacin matemtica), si el signo es suma los nmeros deben sumarse y si el signo es resta los nmeros deben restarse. int num1,num2,num3; char signo; cin>>num1>>num2; cin>>signo; if(signo=='+') { num3=num1+num2; cout<<num3; } else { if(signo=='-') { num3=num1-num2; cout<<num3; } else cout<<"no es suma ni resta"; } Programa que dado un carcter por teclado visualiza su correspondiente nmero decimal asociado. char car; int num; cin>>car; num=(int)(car); cout<<"su valor decimal es: "<<num; Programa que dado un nmero por teclado visualiza su correspondiente caracter asociado. char car; int num; cin>>num; car=(char)(num); cout<<"su valor decimal es: "<<car;

39

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

CADENAS
Una cadena es un vector de caracteres, una cadena debe estar encerrada entre comillas dobles. Por ejemplo una cadena seria: cad=Hola mundo La cadena hola mundo est formado por 10 caracteres. H o l a m u n d o Posiciones de cada carcter 0 1 2 3 4 5 6 7 8 9

A cada posicin de la cadena se la maneja como si fuera una variable de tipo char. Por ejemplo: char c; c=cad[0]; c=cad[3]; c=cad[4];

c tomar el valor de H c tomar el valor de a c tomar el valor de (espacio)

CADENAS EN C++ El manejo de cadenas en C++ se la realiza mediante un vector de caracteres como se muestra a continuacin: char cad*11+=Hola mundo; Tambin se puede manejar cadenas con punteros de cadenas, por ejemplo: char *cad=Hola mundo; Pero, en este tutorial el manejo de cadenas se realizar mediante la clase string que evita muchos problemas que existen al manejar cadenas. Nota.- la clase string no es soportado por cualquier compilador, por ejemplo el compilador de borland Turbo c++ no soporta. Pero, si soporta el compilador del CodeBlock o el compilador DevC++

A continuacin y mediante algunos ejemplos iremos viendo algunas funciones de las cadenas. 1. Insertar una palabra por teclado. Se utiliza la funcin cin>>

#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { string cad; cin>>cad; cout<<cad; system("PAUSE"); //detiene el programa caso contrario no visualizara nada return EXIT_SUCCESS; //retorna el valor 0, ya que main es de tipo int }
40

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

2. Visualizar la longitud de una cadena. Se utiliza la funcin length(), la misma retorna un valor entero

#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { string cad; cin>>cad; int tam=cad.length(); cout<<tam; system("PAUSE"); return EXIT_SUCCESS; }
3. Visualizar inversamente una cadena insertada por teclado

string cad; cin>>cad; int tam=cad.length(); for(int i=tam-1;i>=0;i--) cout<<cad[i];


4. Concatenar (unir) tres cadenas

string cad1,cad2,cad3,cad4; cad1="Ingenieria"; cad2="de"; cad3="Sistemas"; cad4=cad1+cad2+cad3; cout<<cad4<<endl;


5. Cuntas vocales a hay en una palabra introducida por teclado.

int cant=0; string cad; cin>>cad; int t=cad.length(); for(int i=0;i<t;i++) if(cad[i]=='a') cant++; cout<<cant;
6. Adicin de un carcter al final de una cadena. Se puede generar una nueva cadena a partir de otra como se muestra en el siguiente ejemplo:

string A,B; A="alberto"; B=""; //una cadena puede tener el valor de vaco (dos comillas sin nada en medio) int tam=A.length(); for(int i=0;i<tam;i++)
41

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

B=B+A[i]; //A una cadena se le puede aadir al final un carcter cout<<B;


INSERCION DE UNA FRASE MEDIANTE TECLADO (getline) La instruccin cin>> solo permite introducir palabras (cadenas sin espacios), para introducir cadenas que contengan espacios se debe utilizar la instruccin getline(cin,[cadena]) 7. En el siguiente ejemplo se introduce una frase por teclado, posteriormente se visualiza cuantas palabras hay en la frase.
string cad; int pal=0;

getline(cin,cad);
int tam=cad.length(); for(int i=0;i<tam;i++) if(cad[i]==' ') pal++; pal++; cout <<"hay "<<pal<<" palabras";

FUNCIONES DE CADENAS MAS UTILIZADAS EN C++ Operador compare Find Funcin Compara 2 cadenas Verifica si una cadena esta dentro de otra Tipo int int

Devuelve mayor a cero, menor a cero o igual a cero Devuelve -1 si no est dentro la cadena, caso contrario devuelve la posicin donde se encuetra

length substr

Devuelve la longitud de una cadena Devuelve una subcadena de una cadena

int string

8.

Programa que visualiza el mayor de 2 cadenas

string A,B; A="oruro"; B="Oruro"; if(A.compare(B)==0) //devuelve mayor a 0, menor a 0 o igual a 0 cout<<"iguales"; else if(A.compare(B)>0) cout<<"el mayor es"<<A; else cout<<"el mayor es"<<B;

42

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

9. Programa que copia una subcadena en otra subcadena.

string A,B; A="Tortuga"; B=A.substr(3,2); //B tomar el valor de tu, a partir de la posicin 3, 2 caracteres cout<<B;
10. Programa que visualiza esta contenida si una cadena esta dentro de otra

string A="mariposa"; string B="oso"; int p=A.find(B); if(p==-1) cout<<"no esta contenida"; else cout<<"esta contenida";

43

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

FUNCIONES HECHAS POR EL PROGRAMADOR


Existen 2 tipos de funciones hechas por el programador: las que no retornan ningn valor void (funciones vacas, llamadas tambin procedimientos) y las que retornan valores (return). Internamente las funciones tienen sus propias variables, estructuras selectivas y estructuras repetitivas.

FUNCIONES QUE RETORNAN VALORES (tienen return) Las funciones en C++ tienen el siguiente formato: Nombre de la funcin Tipo de dato que devuelve la funcin Parmetros que recibe la funcin

int suma ( int A, int B) { int C=A+B; return (C); }


Dato que devuelve la funcin

La anterior funcin tiene como nombre suma, esta funcin recibe dos parmetros de tipo entero y retorna (devuelve) un valor de tipo entero (int) La funcin anterior se puede utilizar en una funcin o programa principal de la siguiente manera:

#include <iostream.h> int suma(int A,int B) { int C=A+B; return (C); }

Funcin suma

void main() { int num1=4; int num2=20; int num3=suma(num1,num2); cout<<(num3); }

Funcin principal (main)

Dentro de la funcin principal se llama a la funcin suma

Nota.- Todas las funciones deben estar antes que la funcin principal

Ejercicios
44

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

1. Funcin que reciba como parmetros 3 nmeros y devuelva el mayor de los nmeros.

#include <iostream> int mayor(int a,int b,int c) { if(a>b) if(a>c) return a; else return c; else if(b>c) return b; else return c; } void main() { int R,x,y,z; cin>>x>>y>>z; R=mayor(x,y,z); cout<<R; }
2. Funcin que reciba como parmetro un nmero y devuelva el promedio de sus dgitos.

#include <iostream.h> float promedio(int num) { int dig,sum,cant; sum=0; cant=0; float p; while(num>0) { dig=num%10; sum=sum+dig; cant++; num=num/10; } p=(float)(sum)/cant; return p; } void main() { int n; cin>>n; float prom=promedio(n); cout<<prom; }
3. Funcin que reciba como parmetro un nmero y devuelva su factorial.

#include <iostream.h>
45

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

int factorial(int num) { int fac=1; for(int i=1;i<=num;i++) fac=fac*i; return fac; } void main() { int n; cin>>n; cout<<factorial(n); }
4. Funcin que reciba como parmetro un nmero binario y devuelva su correspondiente en nmero decimal.

#include <iostream.h> int decimal(int bin) { int dig,dec=0,pa=1; while(bin>0) { dig=bin%10; dec=(dig*pa)+dec; pa=pa*2; bin=bin/10; } return dec; } void main() { int n,d; cin>>n; d=decimal(n); cout<<d; }
5. Realice una funcin que reciba como parmetro un nmero y devuelva 1 si el nmero es primo y 0 si el nmero no es primo. Posteriormente utilizando la funcin primo, realice un programa que permita visualizar los primeros N nmeros primos.

#include <iostream.h> int primo(int num) { int con=1,c=0; while(con<=num) { if(num%con==0) c++; con++;
46

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

} if(c<=2) return 1; else return 0; } void main() { int n,con=0,num=1; cin>>n; while(con<n) { if(primo(num)==1) { cout<<num<<endl; con++; } num++; } }

47

Ingeniera de Sistemas

Programacin I

Ing. Limber Ruz Molina

FUNCIONES QUE NO RETORNAN VALORES FUNCIONES VACIAS (void)


Son las que no retornan ningn valor (funciones vacas, llamadas tambin procedimientos) Partes de una funcin vaca.

void nombre_Funcion(parmetros) { Variables locales PROGRAMA INTERNO }


Variables Locales. Este tipo de variables son las que pueden ser utilizadas slo dentro la funcin, no son vlidas para otras funciones Tambin existen las Variables Globales, ests si pueden ser utilizadas en cualquier funcin del programa, pero, deben ser declaradas slo una vez al inicio del programa.

Ejercicios.
1. Realice un programa que visualice la suma de dos nmeros introducidos por teclado. Utilizando los siguientes subprogramas: - leerNumeros() - calcularSuma() - verSuma()

#include <iostream.h> int A,B,C; void leerNumeros() { cin>>A>>B; } void calcularSuma() { C=A+B; } void verSuma() { cout<<C;

Variables globales

48

Ingeniera de Sistemas

Programacin I La funcin principal (main), es tambin una funcin vacia (void), y es la primera funcin que se ejecuta

Ing. Limber Ruz Molina

} void main() { leerNumeros(); calcularSuma(); verSuma(); }

2. Realice un programa que dado un nmero por teclado visualice la cantidad de dgitos que tiene. Utilizando los siguientes subprogramas. - leerNumero() - contarDigitos() - mostrarCantidad()

#include <iostream.h> int A,res=0; void leerNumero() { cin>>A; } void contarDigitos() { int num=A; while(num>0) { res++; num=num/10; } } void mostrarCantidad() { cout<<res; } void main() { leerNumero(); contarDigitos(); mostrarCantidad(); }

La variable num es una variable local, es decir slo se podr usar en esta funcin y no en otras funciones

3. Realice un programa que permita insertar N nmeros ledos desde teclado posteriormente visualice cuntos son mayores a 5. Utilizando los siguientes subprogramas. - LeerN() 49

Ingeniera de Sistemas insertarNumeros() mostrarMayores()

Programacin I

Ing. Limber Ruz Molina

#include <iostream.h> int N,mayores=0; void leerN() { cin>>N; } void insertarNumeros() { int num,con=0; while(con<N) { cin>>num; if(num>5) mayores++; con++; } } void mostrarMayores() { cout<<mayores; } void main() { leerN(); insertarNumeros(); mostrarMayores(); }

50

Vous aimerez peut-être aussi