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.

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

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 :)