Menu de opciones que muestra varios de los programas listados en esta seccion

pascal:
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.
¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

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 último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P