Menu de opciones que muestra varios de los programas listados en esta seccion
uses crt; var opcion : char; Procedure PROG1; { PROCEDURE Descripcion: Evalua la potencia de un numero dado, tomando en cuenta la base y potencia www.mis-algoritmos.com } var base, potencia : integer; cont, resultado : integer; begin resultado:=1;{Inicializo variable "resultado"} clrscr; {Limpiamos pantalla} writeln('Base y potencia: '); {Salida en Pantalla} readln(base,potencia); {Entrada desde el teclado} for cont:=1 to potencia do begin resultado:=resultado*base;{evalua resultado} end; writeln(base,'^',potencia,'=',resultado); {Mostramos resultado de la forma "Base^Potencia=Resultado"} readkey;{Esperamos una tecla para finalizar} end; Procedure PROG2; { Descripcion: Determina el area de un triangulo dada la base y altura www.mis-algoritmos.com } var base, altura : integer; area : real; begin clrscr; {Limpiamos pantalla} writeln('base y altura: ');{Salida en pantalla} readln(base,altura);{Entrada desde el teclado} area:=(base*altura)/2;{evaluamos altura} writeln('Area: ',area:0:2);{Salida en pantalla} readkey; {Esperamos una tecla para finalizar} end; Procedure PROG3; { Descripcion: Determina el area de un circulo dado el radio www.mis-algoritmos.com } const PI=3.141583; {Declaramos PI como constante} var radio:integer; begin clrscr; {Limpiamos la pantalla} writeln('Radio: '); {Salida en pantalla} readln(radio);{Entrada desde el teclado} writeln('Area: ',PI*radio*radio:0:2); {Salida en pantalla y evalua resultado} readkey; {Esperamos una tecla para finalizar} end; Procedure PROG4; { Descripcion: Dice si una palabra es palindroma. www.mis-algoritmos.com } var palabra : string; cont : integer; palindromo : boolean; begin clrscr; {Limpiamos pantalla} Write('Palabra: '); readln(palabra); {Entrada desde el teclado} cont:=1; {Inicializamos el contador} while cont<=length(palabra) div 2 do {Ciclo hasta la mitad de la cadena} begin if palabra[cont]=palabra[length(palabra)-(cont-1)] then {Coomparamos si la ultima letra conincide con la primera y asi sucesivamente hasta llegar al centro} begin palindromo:=true; {Si son iguales, bandera en true} end else begin palindromo:=false; {Si encuentra una diferencia, bandera en false} cont:=length(palabra) div 2;{Break} end; cont:=cont+1;{Incrementamos contador en uno} end; if palindromo=true then{Mostramos una salida legible por el usuario} writeln('Si es Palindromo') else writeln('No es palindromo'); readkey;{Esperamos una tecla para finalizar} end; Procedure PROG5; { Descripcion: Evalua la cantidad de ocurrencias de las letras en una palabra www.mis-algoritmos.com } var letras : array [1..256] of integer; cont : integer; enunciado : string; begin clrscr;{Limpiamos pantalla} for cont:=1 to 255 do{Rellenamos vector de 255 con ceros} begin letras[cont]:=0; end; readln(enunciado); {Leemos enunciado} for cont:=1 to length(enunciado) do begin {Sumamos en 1 si encontramos una letra en tal posicion} letras[ord(enunciado[cont])]:=letras[ord(enunciado[cont])]+1; end; for cont:=1 to 255 do begin {Si la posicion de es mayor a cero en su contenido mostramos la letra que le corresponde y la cantidad de veces que la encotramos} if letras[cont]>0 then writeln('Letra ',chr(cont),' :',letras[cont]); end; readkey;{Esperamos una tecla para finalizar} end; Procedure PROG6; { Descripcion: Determina el salario semanal de un trabajador dada la hora dada la tarifa por horas y horas trabajadas. La jornada es de 8 horas y las horas extras se pagan doble. www.mis-algoritmos.com } var salario : real; tarifa_por_hora : real; horas_trabajadas : real; begin clrscr;{Limpiamos pantalla} write('Tarifa por hora: ');{Salida en pantalla} readln(tarifa_por_hora);{Entrada desde el teclado} write('Horas trabajadas: ');{Salida en pantalla} readln(horas_trabajadas);{Entrada desde el teclado} if horas_trabajadas>8 then {Evalua salario si trabajo mas de 8 horas} salario:=(8*tarifa_por_hora)+(2*(horas_trabajadas-8)*tarifa_por_hora) else {Evalua salario si trabajo menos de 8 horas} salario:=horas_trabajadas*tarifa_por_hora; writeln('Salario: ',salario:0:2);{Muestra el salario en pantalla} readkey;{Espera una tecla para finalizar} end; procedure PROG7; { Descripcion: Dado el precio de un articulo y la cantidad de articulos, determinar el subtotal, iva y total. www.mis-algoritmos.com } var precio, iva, costo, subtotal, total : real; cantidad : integer; begin clrscr;{Limpiamos pantalla} write('Precio; ');{Salida en pantalla} readln(precio);{Entrada desde el teclado} write('Cantidad: ');{Salida en pantalla} readln(cantidad);{Entrada desde el teclado} iva:=precio*0.15;{Evaluam iva 15%} costo:=precio+iva;{Agrega iva al precio} subtotal:=precio*cantidad;{Evaluamos subtotal} iva:=cantidad*iva;{Evalua iva total a cobrar} total:=costo*cantidad;{Evalua el total de la compra} writeln;{Espacio en blanco (Enter)} writeln('Subtotal: ',subtotal:0:2);{Salida en pantalla} writeln('I.V.A.: ',iva:0:2);{Salida en pantalla} writeln('Total: ',total:0:2);{Salida en pantalla} readkey;{Esperamos una tecla para finalizar} end; Procedure PROG8; var x1,x2,y1,y2 : integer; cantidad : integer; cont : integer; procedure dibuja(x1,y1,x2,y2:integer); {Procedimiento que dibuja un marco en las coordenadas dadas} var cont : integer; begin {Dibujando desde X1 a X2 en Y1} for cont:=x1 to x2 do begin gotoXY(cont,y1);{Posiciona cursor} write('°');{Dibuja caracter} delay(10);{Retarda la ejecucion} end;{Fin del FOR} {Dibujando desde Y1 a Y2 en X2} for cont:=y1 to y2 do begin gotoXY(x2,cont);{Posiciona cursor} write('°');{Dibuja caracter} delay(10);{Retarda la ejecucion} end;{Fin del FOR} {Dibujando desde X2 a X1 en Y2} for cont:=x2 downto x1 do begin gotoXY(cont,y2);{Posiciona cursor} write('°');{Dibuja caracter} delay(10);{Retarda la ejecucion} end;{Fin del FOR} {Dibujando desde Y2 a Y1 en X1} for cont:=y2 downto y1 do begin gotoXY(x1,cont);{Posiciona cursor} write('°');{Dibuja caracter} delay(10);{Retarda la ejecucion} end;{fin del FOR} end;{Fin del procedimiento} begin{Inicia programa principal} clrscr;{Limpiamos pantalla} write('Cantidad de marcos: ');{Salida en pantalla} readln(cantidad);{Entrada desde el teclado} clrscr;{Limpia pantalla} for cont:=1 to cantidad do { Pide y dibuja los marcos } begin gotoxy(70,1); write('X1: '); readln(x1); gotoxy(70,2); write('Y1: '); readln(y1); gotoxy(70,4); write('X2: '); readln(x2); gotoxy(70,5); write('Y2: '); readln(y2); gotoxy(70,1);write(' '); gotoxy(70,2);write(' '); gotoxy(70,4);write(' '); gotoxy(70,5);write(' '); dibuja(x1,y1,x2,y2); end; readkey; end; begin repeat clrscr; writeln('1.- Evalua potencia'); writeln('2.- Evalua area de un triangulo'); writeln('3.- Evalua area de un circulo'); writeln('4.- Evalua si una palabra es palindromo'); writeln('5.- Evalua cantidad de ocurrencias de las letras'); writeln('6.- Evalua el salario de un trabajador'); writeln('7.- Evalua subtotal, iva y total de una compra'); writeln('8.- Dibuja marcos en la pantalla'); writeln('9.- Salir'); writeln; writeln('Elije una opcion:'); opcion:=readkey; case opcion of '1': PROG1; '2': PROG2; '3': PROG3; '4': PROG4; '5': PROG5; '6': PROG6; '7': PROG7; '8': PROG8; end; until opcion='9'; end.
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)