[ Foro de Pascal ]

Ejercicios para novatos

21-Feb-2014 15:00
natalia tavora
18 Respuestas

comparto con ustedes la primer guia de programas que me dieron en la facu el año pasado... tal vez a alguien le sirve para practicar!
Guia variables, constantes y estructuras condicionales

1 a: realizar un algoritmo que sume dos numeros, cada valor debera ser almacenado en una variable diferente.
b: realizar un algoritmo que reste dos numeros, cada valor debera ser almacenado en una variable diferente.
c: realizar un algoritmo que divida dos numeros, cada valor debera ser almacenado en una variable diferente.
d: realizar un algoritmo que permita obtener el promedio de 3 numeros, cada valor debera ser almacenado en una variable diferente.
e: realizar un algoritmo que permita obtener el salario de u trabajador, dados como datos, la cantidad de horas trabajadas y el valor de la hora de trabajo.
f: diseñar un algoritmo que lea el nombre completo de una persona y lo imprima en forma inversa. Ejemplo (entrada) Juan perez, (salida) Perez, Juan.
g: realiza un programa que permita cargar los datos de un alumno y 4 notas correspondientes a las materias literatura, matematicas, historia, e informatica. El programa debera devolver al final el promedio de las notas del alumno.
h) hacer un programa que permita ingresar 5 letras y luego las una formando una sola palabra
i) ingresar un numero y que el sistema indique la potencia cubica de ese numero.


21-Feb-2014 16:39
Invitado (marion)

hola acabo de entrar al foro y me parece muy interesante aunque algo avanzad en algunos tips, por eso agradezco compañera estos ejercicios para los principiantes como yo, ojala pudieran los compañeros subir sus propuestas de soluciones,haria mas interesante este foro


22-Feb-2014 15:33
natalia tavora

tengo las respuestas pero creo que no tiene sentido subirlas, la idea es que practiques y si tenes dudas podes consultar...


22-Feb-2014 17:56
Invitado (marion)

quédate con tus respuestas, el conocimiento se comparte si no no tiene sentido , que egoísmo por dios....


22-Feb-2014 23:05
Nacho Cabanes (+83)

En primer lugar, Marion, no hay necesidad de faltar al respeto a nadie. Como moderador de este foro, borraré tu "encantadora" respuesta si Natalia lo considera adecuado.

En segundo lugar, yo comparto la opinión de Natalia: en general, pero especialmente en el mundo de la programación, se aprende mucho (muchísimo) más si se intenta resolver ejercicios y se preguntan las dudas que si uno se limita a mirar las soluciones y pensar "ah, vale". Cuando miras las soluciones hay muchos pequeños detalles que pasas por alto y muchas soluciones alternativas que no llegas a intentar y de cuyas limitaciones podrías haber aprendido más incluso que de la solución final.


23-Feb-2014 00:54
natalia tavora

la educacion ante todo, si fuera egoista no te ofreceria que consultes las dudas, insisto que me parece mas productivo que lo intentes y consultes lo que no entiendas a que alguien venga y te diga como se hace. Pero si te hace feliz ir por el camino facil, mañana subo las respuestas. En cuanto al comentario profe, decida usted si borrarlo o no


24-Feb-2014 14:37
natalia tavora

//a: realizar un algoritmo que sume dos numeros, cada valor debera ser almacenado en una variable diferente.


Program ejA;
uses crt;
Var
R,Num1,num2:integer;

Begin
clrscr;
Writeln('Ingrese Un numero');
Readln(Num1);
Writeln('Ingrese Un numero');
Readln(Num2);
R:=Num1+Num2;
Writeln('El resultado es: ',R);
readln;
ENd.



24-Feb-2014 14:41
natalia tavora

aca estan las soluciones... (todos los ejercicios se pueden resolver de distintas maneras, no existe una unica forma de resolver los problemas....)

// realizar un algoritmo que reste dos numeros, cada valor debera ser almacenado en una variable diferente.


Program ejb;
uses crt;
	Var
		R,Num1,num2:integer;

Begin
clrscr;
	Writeln('Ingrese Un numero');
	Readln(Num1);
	Writeln('Ingrese Un numero');
	Readln(Num2);
	R:=Num1-Num2;
	Writeln('Al restar: ', num1,' - ',num2,' se obtiene: ',R);
readln;
ENd.


//c: realizar un algoritmo que divida dos numeros, cada valor debera ser almacenado en una variable diferente.


Program ejc;
uses crt;
	Var
		Num1,num2:integer;
		r:real;
Begin
clrscr;
	Writeln('Ingrese Un numero');
	Readln(Num1);
	Writeln('Ingrese Un numero');
	Readln(Num2);
	If (Num2<>0)then
	Begin
		R:=Num1/Num2;
		Writeln('El resultado es: ',R:2:2);
	End;
	If (Num2=0)then
	Begin
		writeln('No se puede dividir por cero');
	End;
	delay(800);
ENd.



24-Feb-2014 15:02
natalia tavora

//d: realizar un algoritmo que permita obtener el promedio de 3 numeros, cada valor debera ser almacenado en una variable diferente.


Program ejd;
uses crt;
Var
Num1,num2,num3:integer;
Promedio:real;
Begin
clrscr;
Writeln('Ingrese Un numero');
Readln(Num1);
Writeln('Ingrese Un numero');
Readln(Num2);
Writeln('Ingrese Un numero');
Readln(Num3);
Promedio:=(Num1+Num2+Num3)/3;
Writeln('El Promedio de los numeros ingresados es: ',Promedio:2:2);
readln;
ENd.


//e: realizar un algoritmo que permita obtener el salario de u trabajador, dados como datos, la cantidad de horas trabajadas y el valor de la hora de trabajo. ( como no lo pedia no saque el porcentaje de los aportes, etc)


Program eje;
uses crt;
	Var
		HsT:integer;
		Sueldo,Vhs:real;
Begin
	clrscr;
	Writeln('Ingrese la cantidad de horas');
	Readln(HsT);
	Writeln('Ingrese El valor de la hora');
	Readln(Vhs);
	Sueldo:=HsT*Vhs;
	Writeln('El resultado es: ',Sueldo:2:2,' $');
	readln;
ENd.


//f: diseñar un algoritmo que lea el nombre completo de una persona y lo imprima en forma inversa. Ejemplo (entrada) Juan perez, (salida) Perez, Juan.


Program ejF;
Uses crt;
	Var
		nombre,apellido:string;
Begin
	clrscr;
	Writeln('Ingrese el nombre');
	Readln(nombre);
	Writeln('Ingrese El apellido');
	Readln(apellido);
	Writeln(ID:apellido,' ', nombre);
	readln;
ENd.


//g: realiza un programa que permita cargar los datos de un alumno y 4 notas correspondientes a las materias literatura, matematicas, historia, e informatica. El programa debera devolver al final el promedio de las notas del alumno.


Program ejg;
uses crt;
	Var
		nombre,apellido:string;
		literatura, matematicas, historia,informatica:real;
		n1,n2,n3,n4:integer;
		promedioTotal:real;
	procedure promed(var Materia:real);
		var
		n1,n2,n3,n4:integer;
	begin
		Writeln('Ingrese Primer nota:');
		Readln(N1);
		Writeln('Ingrese segunda nota:');
		Readln(N2);
		Writeln('Ingrese tercera nota:');
		Readln(N3);
		Writeln('Ingrese 4ta nota:');
		Readln(N4);
		materia:=(n1+n2+n3+n4)/4;
	end;
Begin
	clrscr;
	Writeln('Ingrese el nombre');
	Readln(nombre);
	Writeln('Ingrese El apellido');
	Readln(apellido);
	Writeln('Ingrese las notas de literatura');
	promed(literatura);
	clrscr;
	Writeln('Ingrese la nota de matematicas');
	promed(matematicas);
	clrscr;
	Writeln('Ingrese la nota de historia');
	promed(historia);
	clrscr;
	Writeln('Ingrese la nota de informatica');
	promed(informatica);
	clrscr;
	promedioTotal:=((literatura+matematicas+historia+informatica)/4);
	Writeln('El promedio total del alumno: ', apellido,' ',nombre,' es:',promedioTotal:2:2);
	writeln('El promedio de la materia matematicas es:', matematicas:2:2);
	writeln('El promediode la materia historia es:',historia:2:2);
	writeln('El promedio de la materia literatura es:',literatura:2:2);
	writeln('El promedio de la materia informatica es:',informatica:2:2);
	readln;
ENd.



24-Feb-2014 15:03
natalia tavora

h) hacer un programa que permita ingresar 5 letras y luego las una formando una sola palabra


Program ejg;
uses crt;
	Var
		L1,L2,L3,L4,L5:char;
		palabra:string;
Begin
	clrscr;
	Writeln('1ø letra');
	Readln(L1);
	Writeln('2ø letra');
	Readln(L2);
	Writeln('3ø letra');
	Readln(L3);
	Writeln('4ø letra');
	Readln(L4);
	Writeln('5ø letra');
	Readln(L5);
	Palabra:=(L1+L2+L3+L4+L5);
	
	Writeln('La palabra es : ',palabra);
	readln;
ENd.


i) ingresar un numero y que el sistema indique la potencia cubica de ese numero.


Program ejercicioI;
uses crt;
var
Numero,potencia:integer;
Begin
clrscr;
writeln('Ingrese un numero');
readln(numero);
potencia:=(numero*numero*numero);
writeln('La potencia cubica de: ',numero,' es:',potencia);
readln;
End.



12-May-2014 00:05
Gaston suarez

Puede ser que despues te dieron estos ejercicios,
B) Ingresar 2 valores enteros y escribirlos ordenados de mayor a menor
C) ingresar 2 valores enteros y luego ingresar un tercer valor y comprobar si este esta dentro del intervalo de los 2 primeros
D) realizar un programa que permita ingresar una serie de 5 numeros e indique cuantos son positivos y cuantos negativos
y bueno asi siguen varios ejercicios mas hasta el K, si te los dieron me pasarias como se hace cada uno? gracias


12-May-2014 15:39
Invitado (natalia tavora)

jaja si, que estudias en el hilet en mar del plata?  mas tarde los subo


12-May-2014 15:56
Invitado (Gast)

Sii ahí mismo jajaja dale buenisimo!


12-May-2014 17:07
Invitado (natalia tavora)

Program Positivos_Negativos;
Uses crt;
var
Num1,num2,num3,num4,num5:integer;
ContPos,ContNeg,contNeutros:integer;
begin
clrscr;
writeln('Ingrese un Numero');
Readln(Num1);
writeln('Ingrese un Numero');
Readln(Num2);
writeln('Ingrese un Numero');
Readln(Num3);
writeln('Ingrese el numero ');
Readln(Num4);
writeln('Ingrese un Numero');
Readln(Num5);
contpos:=0;
contneg:=0;
if (num1>0)then
Begin
contpos:=contpos+1;
end;
if (num2>0)then
Begin
contpos:=contpos+1;
end;
if (num3>0)then
Begin
contpos:=contpos+1;
end;
if (num4>0)then
Begin
contpos:=contpos+1;
end;
if (num5>0)then
Begin
contpos:=contpos+1;
end;
if (num1<0)then
Begin
contNeg:=contNeg+1;
end;
if (num2<0)then
Begin
contNeg:=contNeg+1;
end;
if (num3<0)then
Begin
contNeg:=contNeg+1;
end;
if (num4<0)then
Begin
contNeg:=contNeg+1;
end;
if (num5<0)then
Begin
contNeg:=contNeg+1;
end;
writeln('cantidad de positivos:',contpos);
writeln('cantidad de Negativos:',contNeg);
readln;
end.


12-May-2014 17:10
Invitado (natalia tavora)

Program intervalo;
Uses crt;
var
Num1,Num2,Num3:integer;

begin
clrscr;
writeln('Ingrese el numero del intervalo mas chico');
Readln(Num1);
writeln('Ingrese un Numero');
Readln(Num2);
writeln('Ingrese un Numero');
Readln(Num3);
if (num3>=num1)and(Num3<=num2)then
Begin
writeln('el numero Pertenece al intervalo: ',num1,', ',num2);
End;
if (num3 >num2) or (num3<num1) then
begin
writeln('el numero no Pertenece al intervalo: ',num1,', ',num2);
end;

readln;
end.

//en este podrias tb corroborar que el numero 1 sea mas chico que el numero2 ..... si te animas hacelo, ami me da fiaca jaja pero es facil


12-May-2014 17:14
Invitado (natalia tavora)

Program EjercicioB;
Uses crt;
var
Num1,Num2:integer;
begin
clrscr;
writeln('Ingrese un Numero');
Readln(Num1);
writeln('Ingrese un Numero');
Readln(Num2);
If (num1<>Num2) then
Begin
If(Num1>num2)then
Begin
writeln('Se Ordenaron de mayor a menor los numeros ingresados: ',num1,num2);
ENd;
If(Num1<num2)then
Begin
writeln('Se Ordenaron de mayor a menor los numeros ingresados: ',num2,',',num1);
ENd;
end;
If (num1=Num2) then
Begin
writeln('Los numeros ingresados son iguales');
end;
readln;
end.
//consejo, usalos solo de guia, porque si solo te los copias mas a delante vas a estar frito, javi te las pide en pseudocodigo al principio asique asegurate de sacarle el uses crt cuando lo traduzcas,  otro consejo, el dia que des el final, estudia bien toda la teoria porque javi te pregunta de todo, sobre todo cosas que ves al principio de año...


12-May-2014 19:50
Nacho Cabanes (+83)

Deberías intentarlos tú primero, es la mejor forma de aprender  ;-P  No son difíciles, el primero consiste es pedir dos números y ver si es mayor el primero (para entonces escribir segundo y primero) o es mayor el segundo (para escribir en ese caso el primero y luego el segundo):


write('Primer numero? ');
readLn(a);
write('Segundo numero? ');
readLn(b);
if a > b then writeLn(b, ' ', a)
else writeLn(a, ' ', b);



12-May-2014 20:01
Gaston suarez

Pasa que yo tuve que faltar asique no lo entendi, y teniendo como es cada una de las respuestas lo voy entendiendo mejor, por eso se las pedi


13-May-2014 03:43
Invitado (Gast)

Gracias Nati, sisi osea me iba fijando como los hacias y los pasaba a Pseudocodigo, gracias por la ayuda y el consejo, si queres agregame a Face Gast Romeo






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)