Pascal Estructuras if Then Else

16
Universidad de Buenos Aires 75.01 Computación Estructuras de Programación Preparado por: Ing. Cristina Pérez Berro Página 1 de 16 Estructuras de Programación 1) Estructura Condicional Simple: if then else { Dados dos números distintos entre sí, informar el mayor de ellos } { SECCION DECLARATIVA } program Ejemplo01; uses crt; var nro1, nro2: integer; { SECCION ALGORÍTMICA } begin { Prólogo } ClrScr; writeln(' *** Buscar el número mayor *** '); writeln; write('Ingresar un numero entero: '); readln(nro1); write('Ingresar otro numero entero distinto: '); readln(nro2); writeln; { Resolución y Epílogo } if nro1 > nro2 then writeln('El mayor es: ', nro1) else writeln('El mayor es: ', nro2); writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end. Nunca poner punto y coma antes de el else then else true false if ?

Transcript of Pascal Estructuras if Then Else

Page 1: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 1 de 16

Estructuras de Programación

1) Estructura Condicional Simple: if then else { Dados dos números distintos entre sí, informar el mayor de ellos } { SECCION DECLARATIVA } program Ejemplo01; uses crt; var nro1, nro2: integer; { SECCION ALGORÍTMICA } begin { Prólogo } ClrScr; writeln(' *** Buscar el número mayor *** '); writeln; write('Ingresar un numero entero: '); readln(nro1); write('Ingresar otro numero entero distinto: '); readln(nro2); writeln; { Resolución y Epílogo } if nro1 > nro2 then writeln('El mayor es: ', nro1) else writeln('El mayor es: ', nro2); writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end.

Nunca poner punto y coma

antes de el else

then else

true false

if

?

Page 2: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 2 de 16

2) Estructuras Condicionales Anidadas: Ejemplo 01: { Dado un número informar si es positivo, negativo o cero } { SECCION DECLARATIVA } program Ejemplo02_1; uses crt; var nro: real; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** Verificar si un número es positivo, negativo o cero *** '); writeln; write('Ingresar un numero: '); readln(nro); writeln; { Resolución y Epílogo } if nro>0 then writeln('El numero ', nro:6:2, ' es positivo') else if nro<0 then writeln('El numero ', nro:6:2, ' es negativo') else writeln('El numero ingresado es cero'); writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end.

Page 3: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 3 de 16

Ejercicio 02 { Dada una fecha en formato día, mes y año, informar si esa fecha es Navidad. Nota: suponer que se ingresan fechas válidas } { SECCION DECLARATIVA } program Ejemplo02_2; uses crt; var dia, mes: byte, anio: integer; { SECCION ALGORÍTMICA } begin { Prólogo } ClrScr; writeln(' *** Verificar si la fecha es Navidad *** '); writeln; write('Ingresar dia: '); readln(dia); write('Ingresar mes: '); readln(mes); write('Ingresar anio: '); readln(anio); writeln; { Resolución y Epílogo } if mes = 12 then if dia = 25 then begin write('La fecha ',dia,'/',mes,'/',anio); writeln(' corresponde a Navidad'); end else begin write('La fecha ',dia,'/',mes,'/',anio); writeln(' no corresponde a Navidad'); end else begin write('La fecha ',dia,'/',mes,'/',anio); writeln(' no corresponde a Navidad'); end; writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end.

Si dentro del then o else deben ejecutarse más de una

instrucción, es NECESARIO

encerrarlas entre begin – end

Page 4: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 4 de 16

Ejemplo 03: { Dados tres números enteros, informarlos ordenados en forma descendente. } { SECCION DECLARATIVA } program Ejemplo02_3; uses crt; var a, b, c: integer; { SECCION ALGORITMICA } begin { Protocolo } ClrScr; writeln('*** Ordenar tres números descendentemente ***'); writeln; write('Ingresar tres números enteros: '); readln(a, b, c); writeln; if a>b then if b>c then writeln(' ',a,' ',b,' ',c) else if a>c then writeln(' ',a,' ',c,' ',b) else writeln(' ',c,' ',a,' ',b) else if b>c then if a>c then writeln(' ',b,' ',a,' ',c) else writeln(' ',b,' ',c,' ',a) else writeln(' ',c,' ',b,' ',a); writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end.

Page 5: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 5 de 16

3) Estructura Condicional Múltiple: case of { Dado un número de mes, informar su nombre, la cantidad de días que posee y a que cuatrimestre pertenece. Nota: puede haber error en el ingreso del mes } { SECCION DECLARATIVA } program Ejemplo03; uses crt; var mes: shortint; dias: byte; nmes, cuat: string[10]; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** Informar nombre del mes, cantidad de días y cuatrimestre *** '); writeln; write('Ingresar número del mes: '); readln(mes); writeln; { Resolución } case mes of 1: nmes:='Enero'; 2: nmes:='Febrero'; 3: nmes:='Marzo'; 4: nmes:='Abril'; 5: nmes:='Mayo'; 6: nmes:='Junio'; 7: nmes:='Julio'; 8: nmes:='Agosto'; 9: nmes:='Septiembre'; 10: nmes:='Octubre'; 11: nmes:='Noviembre'; 12: nmes:='Diciembre'; end; case mes of 1, 3, 5, 7, 8, 10, 12: dias:=31; 2: dias:=28; 4, 6, 9, 11: dias:=30; else dias:=0; end; case mes of 1..4: cuat:='Primer' ; 5..8: cuat:='Segundo'; 9..12: cuat:='Tercer'; end; writeln;

Variable selectora de tipo de dato:

integer, char o boolean

Los posibles valores de la

variable pueden indicarse como:

Valores enumerados

Rango de valores

Posee un end propio

Si dentro de cada rótulo de selección deben ejecutarse más

de una instrucción, es NECESARIO encerrarlas entre

begin – end

Pero cuando debe ejecutarse una única instrucción, NO es

necesario encerrarla entre begin – end

Page 6: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 6 de 16

{ Epílogo } if dias <> 0 then begin write(' El numero de mes corresponde a ', nmes); writeln(' tiene ',dias,' dias'); writeln(' y pertenece al ',cuat,' Cuatrimestre del año'); end else writeln('El numero ingresado no corresponde a un mes valido'); writeln; writeln(' *** Fin del Programa *** '); writeln; writeln('Presione ENTER para salir'); readln; end.

variable

v1 v2 v3 v4 v5

Si dentro del then o else deben ejecutarse más de una

instrucción, es NECESARIO encerrarlas entre begin – end

Pero cuando debe ejecutarse una única instrucción, NO es

necesario encerrarla entre begin – end

Variable selectora

Posibles contenidos de

la variable selectora

Page 7: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 7 de 16

4) Estructura Repetitiva: repeat until { De cada uno de los alumnos de un curso se conoce: matrícula, nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno Nota: para fin de ingreso de datos preguntar: Desea procesar datos? s/n } { SECCION DECLARATIVA } program Ejemplo04; uses crt; var matr: integer; nom: string[20]; n1, n2, n3: byte; prom: real; resp: char; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; { Desarrollo y Epílogo } repeat write('Ingresar matricula del alumno: '); readln(matr); write('Ingresar nombre: '); readln(nom); write('Ingresar las 3 notas: '); readln(n1,n2,n3); prom:=(n1+n2+n3)/3; writeln; writeln('Alumno: ',nom,' Promedio: ',prom:6:2); writeln; write('Desea procesar datos? s/n '); readln(resp); writeln; until (resp ='n') or (resp ='N'); writeln; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; end.

Estructura Repetitiva Repeat … until 1- Se ingresa directamente al cuerpo del ciclo, ejecutando las instrucciones que están dentro de él.

2- La condición se evalúa al final, y si esta es falsa se reingresa al ciclo.

3- Solo cuando la condición sea verdadera se puede salir del ciclo de repetición.

4- Esta estructura se utiliza cuando tenemos por lo menos un juego de datos a procesar, por lo tanto se

puede ingresar al ciclo 1 o mas veces.

Page 8: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 8 de 16

5) Estructura Repetitiva: while do Versión 1 { De cada uno de los alumnos de un curso se conoce: matrícula, nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno Nota: para fin de ingreso de datos preguntar: Desea procesar datos? s/n } { SECCION DECLARATIVA } program Ejemplo05; uses crt; var matr: integer; nom: string[20]; n1, n2, n3: byte; prom: real; resp: char; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; { Desarrollo y Epílogo } write('Desea procesar datos? s/n '); readln(resp); while ( resp = 's') or ( resp='S') do begin writeln; write('Ingresar matricula del alumno: '); readln(matr); write('Ingresar nombre: '); readln(nom); write('Ingresar las 3 notas: '); readln(n1,n2,n3); prom:=(n1+n2+n3)/3; writeln; writeln('Alumno: ',nom,' Promedio: ',prom:6:2); writeln; write('Desea procesar datos? s/n '); readln(resp); end; writeln; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; end.

Estructura Repetitiva While … do 1- Se ingresa al ciclo evaluando primeramente una condición.

2- Si la condición es verdadera, se ingresa al cuerpo del ciclo de repetición y se ejecutan las instrucciones

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

Si dentro del while deben ejecutarse más de una

instrucción, es NECESARIO encerrarlas entre begin – end

Pero cuando debe ejecutarse una única instrucción, NO es

necesario encerrarla entre begin – end

Page 9: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 9 de 16

Versión 2 { De cada uno de los alumnos de un curso se conoce: matrícula, nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno la cantidad de alumnos procesados y el promedio general del curso. Nota: para fin de ingreso de datos ingresar matrícula cero } { SECCION DECLARATIVA } program Ejemplo06; uses crt; var matr: integer; nom: string[20]; n1, n2, n3: byte; prom, suma: real; cant: byte; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; suma:=0; cant:=0; { Desarrollo y Epílogo } write('Ingresar matricula del alumno (cero para terminar): '); readln(matr); while ( matr <> 0) do begin cant:=cant+1; write('Ingresar nombre: '); readln(nom); write('Ingresar las 3 notas: '); readln(n1,n2,n3); prom:=(n1+n2+n3)/3; suma:=suma+prom; writeln; writeln('Alumno: ',nom,' Promedio: ',prom:6:2); writeln; writeln; write('Ingresar matricula del alumno (cero para terminar): '); readln(matr); end; writeln; if cant <> 0 then begin writeln('Cantidad de alumnos procesados: ',cant); writeln('Promedio General del curso: ',(suma/cant):6:2); end else writeln('No se procesaron datos '); writeln; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; end.

Variable contador:

� Tiene sentido al utilizar estructuras

repetitivas

� Es entera

� Debe inicializarse en cero antes de

entrar al ciclo de repetición

� Se incrementa en 1 dentro del ciclo

� Se informa al salir del ciclo

Variable acumulador:

� Tiene sentido al utilizar estructuras repetitivas

� Es del mismo tipo que la variable cuyo contenido debe acumular

� Debe inicializarse en cero antes de entrar al ciclo de repetición

� Acumula el contenido de una variable dentro del ciclo

� Se informa al salir del ciclo

Validación para evitar división por cero

Marca de fin

Page 10: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 10 de 16

Indentación Mantener un margen para la secuencia principal del programa y un margen distinto para el cuerpo de cada estructura de programación, hace a la legibilidad y comprensión de un programa y es de aplicación OBLIGATORIA

{ De cada uno de los alumnos de un curso se conoce: nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno y si está aprobado, desaprobado o recupera, sabiendo que aprueba con promedio mayor o igual a 7 y recupera con promedio entre 4 y 6. Para fin de ingreso de datos ingresar nombre en blanco. } TEXTO SIN INDENTACIÓN : NO SE DISTINGUEN LAS ESTRUCTURAS DE PROGRAMACIÓN, NI LAS

INSTRUCCIONES QUE COMPONEN EL CUERPO DE CADA ESTRUCTURA. ES CLARAMENTE ILEGIBLE.

{ SECCION DECLARATIVA } program Ejemplo09; uses crt; var nom: string[20]; n1, n2, n3: byte; prom: real; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; write('Ingresar nombre: '); readln(nom); while nom<>’’ do begin write('Ingresar las 3 notas: '); readln(n1,n2,n3); { Desarrollo y Epílogo } prom:=(n1+n2+n3)/3; writeln; write('Alumno: ',nom,' Promedio: ',prom:6:2); if (prom<4) then writeln(' *** Desaprobado') else if (prom<7) then writeln(' *** Recupera') else writeln(' *** Aprobado'); writeln; write(‘Ingresar nombre: ’); readln(nom); end; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; end.

Page 11: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 11 de 16

TEXTO CON INDENTACIÓN : SE DISTINGUE CADA ESTRUCTURA DE PROGRAMACIÓN Y LAS

INSTRUCCIONES QUE SE ENCUENTRAN EN EL CUERPO DE CADA UNA. ES TOTALMENTE LEGIBLE

{ SECCION DECLARATIVA } program Ejemplo09; uses crt; var nom: string[20]; n1, n2, n3: byte; prom: real; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; write('Ingresar nombre ( ENTER para salir ): '); readln(nom); while nom<>’’ do begin write('Ingresar las 3 notas: '); readln(n1,n2,n3); { Desarrollo y Epílogo } prom:=(n1+n2+n3)/3; writeln; write('Alumno: ',nom,' Promedio: ',prom:6:2); if (prom<4) then writeln(' *** Desaprobado') else if (prom<7) then writeln(' *** Recupera') else writeln(' *** Aprobado'); writeln; write('Ingresar nombre ( ENTER para salir ): '); readln(nom); end; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; end.

Page 12: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 12 de 16

Archivos de Texto: Lectura y Escritura Versión 3 { De cada uno de los alumnos de un curso se conoce: matrícula, nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno y la cantidad de alumnos procesados. Nota: Los datos se leen desde archivo } { SECCION DECLARATIVA } program Ejemplo07; uses crt; var matr: integer; nom: string[20]; n1, n2, n3: byte; prom: real; cant: byte; notas: text; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; writeln; cant:=0; assign(notas,'datos.txt'); reset(notas); writeln('Matricula Nombre nota1 nota2 nota3 Promedio '); writeln; { Desarrollo y Epílogo } while not EOF(notas) do begin cant:=cant+1; readln(notas,matr,n1,n2,n3,nom); prom:=(n1+n2+n3)/3; writeln; writeln(matr:6,nom:10,n1:7,n2:7,n3:7,prom:9:2); writeln; end; writeln; writeln('cantidad de alumnos procesados: ',cant); writeln; writeln; writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; close(notas); end.

Tipo de dato text define un tipo de archivo

de texto de acceso secuencial

Assign( ) : Procedimiento que relaciona la variable

interna ( tipo text ) con el archivo externo

Reset( ) : Procedimiento que abre un archivo

existente para lectura

Page 13: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 13 de 16

Versión 4 { De cada uno de los alumnos de un curso se conoce: matrícula, nombre y las tres notas de sus exámenes, calcular e informar el promedio obtenido por cada alumno y la cantidad de alumnos procesados. Nota: Los datos se leen desde archivo y los resultados deben imprimirse en pantalla y en un archivo } { SECCION DECLARATIVA } program Ejemplo08; uses crt; var matr: integer; nom: string[20]; n1, n2, n3: byte; prom: real; cant: byte; notas: text; promedios:text; { SECCION ALGORITMICA } begin { Prólogo } ClrScr; writeln(' *** PROCESAMIENTO DE NOTAS *** '); writeln; writeln; cant:=0; assign(notas,'datos.txt'); reset(notas); assign(promedios,'promedios.txt'); rewrite(promedios); writeln('Matricula Nombre nota1 nota2 nota3 Promedio '); writeln; writeln(promedios,'Matricula Nombre nota1 nota2 nota3 Promedio '); writeln(promedios); { Desarrollo y Epílogo } while not EOF(notas) do begin cant:=cant+1; readln(notas,matr,n1,n2,n3,nom); prom:=(n1+n2+n3)/3; writeln; writeln(matr:6,nom:10,n1:7,n2:7,n3:7,prom:9:2); writeln; writeln(promedios,matr:6,nom:10,n1:7,n2:7,n3:7,prom:9:2); writeln(promedios); end; writeln; writeln('cantidad de alumnos procesados: ',cant); writeln(promedios); writeln(promedios,'cantidad de alumnos procesados: ',cant); writeln; writeln;

Rewrite( ) : Procedimiento que abre un

archivo para escritura, si no existe lo crea.

Page 14: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 14 de 16

writeln(' ** FIN DEL PROGRAMA ** '); writeln; writeln('Presionar ENTER para salir'); readln; close(notas); close(promedios); end. Archivo de Lectura

Archivo de Escritura

Este archivo de texto contiene los datos a procesar por el programa, por lo tanto debe existir. Debemos crearlo antes de correr el programa ( abrir bloc de notas y cargar los datos )

Este archivo de texto se abre para escritura, si no existe lo crea el programa y si existe borra la información que hay en él y escribe la nueva información. Al tener extensión .txt, se puede abrir con el bloc de notas

Es conveniente que el archivo .pas y el o los archivos .txt estén en el mismo directorio o carpeta

Page 15: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 15 de 16

Archivos de Texto: Agregar datos { De un curso de computación se conoce: cantidad máxima de vacantes,cantidad de inscriptos nuevos, cantidad de inscriptos recursante. Estos datos se encuentran almacenados en un archivo de texto. Diseñar un programa que calcule e informe por pantalla y almacene en un archivo de texto: cantidad de vacantes libres y porcentaje de recursantes inscriptos. Nota: Se sabe que no se cubrieron todas las vacantes } {SECCION DECLARATIVA } Program EjArchivo; uses crt; { Declaración de variables } var cvmax, nuevos, recurs, cvlibres, ctotal: byte; porc : real; { variable tipo archivo de texto } arch: text; { SECCION ALGORITMICA } { parte ejecutable } begin { Prólogo } clrscr; writeln(' *** Ejemplo Lectura / Escritura de Archivo *** ' ); writeln; { Asignación del nombre del archivo a la variable tipo archivo } assign(arch,'vacantes.txt'); { Apertura del archivo de texto para lectura } reset(arch); { Lectura de datos desde archivo de texto } readln(arch); { lee renglón de titulos } readln(arch, cvmax, nuevos, recurs ); { Salida por pantalla de datos le¡dos desde archivo } writeln('Cantidad maxima de vacantes: ', cvmax); writeln('Cantidad de inscriptos nuevos: ',nuevos); writeln('Cantidad de inscriptos recursantes: ',recurs); writeln; { Desarrollo } ctotal := nuevos + recurs; cvlibres := cvmax - ctotal; porc := recurs * 100 / ctotal; { cerrar archivo } close(arch); { Epílogo } { Apertura del archivo de texto para agregar datos } append(arch); { Escritura de datos en el archivo de texto } writeln(arch); writeln(arch,'Cantidad de vacantes libres: ' , cvlibres ); writeln(arch); writeln(arch,'Porcentaje de inscriptos recursantes: ' , porc: 6:2,' %'); writeln; { Salida de datos por pantalla } writeln( 'Cantidad de vacantes libres: ' , cvlibres ); writeln( 'Porcentaje de inscriptos recursantes: ' , porc: 6:2,' %'); { Generación de Pausa } writeln('Presione ENTER para salir del programa'); { cerrar arhivo } close(arch); readln; end.

Page 16: Pascal Estructuras if Then Else

Universidad de Buenos Aires 75.01 Computación Estructuras de Programación

Preparado por: Ing. Cristina Pérez Berro Página 16 de 16

Ejercitación:

1) Dados dos números, informar el mayor de ellos o si son iguales.

2) Dado un número de mes y el año, informar la cantidad de días que posee ese mes en ese año. Nota: puede haber error en el ingreso del mes. Un año es bisiesto si es divisible por 400 ó si es divisible por 4 pero no por 100. Para fin de ingreso de datos preguntar: Desea procesar datos? s/n

3) Dada una hora en formato hhmmss ( un número entero donde los dos primeros dígitos corresponden a la hora, los dos segundos a los minutos y los dos últimos a los segundos ), separarla en tres variable e informarla como hh:mm:ss

4) Diseñar un programa que lea desde teclado números enteros positivos e informe el factorial de cada uno de ellos. Validar que el número ingresado sea mayor o igual a cero. Para fin de ingreso de datos preguntar: Desea procesar datos s/n ?. Recordar: 0! = 1 1!=1 n!= 1*2*3*4*...n, no existe factorial de números negativos

5) Desarrollar un programa que determine e informe el valor máximo de una lista de n números reales ingresados desde teclado.

6) Diseñar un programa que dado un par de valores enteros a y b, devuelva el producto de (a*b) por sumas sucesivas, la división entera (a div b) por restas sucesiva y el resto de la división entera.

7) Ingresar tres valores que representan los lados de un triángulo, el programa debera verificar si forman un triángulo, en cuyo caso informar de que tipo es o un mensaje indicando que no forman un triángulo. Informar ademas la cantidad de triángulos de cada tipo ( escaleno, equilátero, isósceles) y la cantidad de datos ingresados que no corresponden a un triángulo. Informar de que tipo de triángulo se ingresó menor cantidad.

Nota: Para fin de ingreso de datos: Desea procesar datos s/n? Para que se pueda construir un triángulo los tres segmentos deben cumplir cada uno de ellos con la siguiente condición: cada segmento debe ser menor que la suma de los otros dos y mayor que la diferencia de los otros dos.