d

dsadasdas

Usuario (Argentina)

Primer post: 24 may 2011Último post: 29 jun 2011
2
Posts
107
Puntos totales
16
Comentarios
E
Ejercicios resueltos en pseudologico, y traducidos en pascal
Apuntes Y MonografiasporAnónimo5/24/2011

Bienvenidos a mi primer POST!! A continuacion voy a compartir ejercicios de resolucion de algoritmos, que aprendi hasta ahora, aplicando distintos metodos, y conceptos de la materia. ( Introduccion a la algoritmica y la programacion) Antes que nada me gustaría aclarar, que los ejercicios fueron resueltos por mi, por lo tanto pido disculpas por algún error que pueda haber cometido!! También contarles que hay ciertas convenciones que no pude seguir por problemas con la pc. Por ejemplo el tema de identar. Cada ejercicio esta compuesto de tres partes, una es el análisis, el cual nos va a ayudar a resolver el problema del algoritmo, el diseño del mismo y su traducción a Pascal. QUE LO DISFRUTEN!! EJERCICIO 1 Desarrollar un algoritmo que calcule el volumen de aire que contiene una pelota, perfectamente esférica: ANALISIS DE(datos de entrada): Radio de la esfera DS(datos de salida): Volumen de la esfera Debo saber que: Volumen= 4/3 * PI * radio^3 DISEÑO Algoritmo Vesfera Léxico Radio, volumen : R Inicio Escribir ("ingrese el valor del radio de la esfera" ) Leer (Radio) Volumen ← 4/3 * π * radio^3 Escribir ("El volumen de la esfera es", Volumen) Fin PASCAL Program Ejuno; Var Radio, Volumen, Con , con2 : Real; Begin Con := 3.14; Con2:= 3/4; Writeln ('Ingrese el valor del radio de la esfera'); Readln (Radio); Volumen := Radio*Radio*Radio*con*con2; Writeln ('El volumen de la esfera es', Volumen); End. EJERCICIO 2 Desarrollar un algoritmo que convierta un numero de segundos en su equivalente en minutos y segundos. Por ejemplo dado 1300 segundos el algoritmo deberá calcular 21 minutos 40 segundos.. ANALISIS DE: Segundos transcurridos DS: Su equivalente en Min-Seg Debo saber que: El DIV me devuelve el valor entero de la división, y el MOD su resto. DISEÑO Algoritmo Léxico seg, seg2, min : Z Inicio Escribir ("Ingrese segundos" ) Leer (seg) min ← seg div 60 seg ← seg mod 60 Escribir (" Los minutos y segundos equivalentes son " min "y" seg) Fin PASCAL Program Minseg; Uses crt; Var seg, seg2, min : Integer; Begin Clrscr; Writeln ('Ingrese segundos'); Readln (seg); min:= seg div 60; seg2:= seg mod 60; Writeln ('El equivalente en minutos y segundos es ', min, ' minutos ',seg2,' segundos'); End. EJERCICIO 3 Desarrollar un algoritmo que encuentre el máximo entre 3 números: FORMULA máximo entre dos números---> Máximo = ((a+b)+abs (a-b))/2 ANALISIS DE: Tres números reales DS: 1 Numero real Debo saber que: Máximo = ((a+b)+abs (a-b))/2 DISEÑO Algoritmo Maximo; Léxico a,b,c,max,maximo : R Inicio Escribir (“Ingrese tres números”) Leer (a,b,c) max ← ((a+b)+abs(a-b))/2 maximo ← ((max + c) + abs (a-b))/2 Escribir (“El máximo es”, maximo) Fin PASCAL Program Maximi; var a,b,c,max,maximo : Real; begin Writeln ('Ingrese tres numeros'); Readln (a); Readln (b); Readln (c); max:=((a+b)+abs(a-b))/2; maximo:= ((max + c) + abs (max - c))/2; Writeln ('El maximo es', maximo:10:2); End. EJERCICIO 4 Desarrollar un algoritmo que detecte si un numero dado es positivo o negativo. ANALISIS DE: un numero real DS: Un mensaje afirmativo si el numero es negativo DISEÑO Algoritmo Negativo Lexico a : R Inicio Escribir(“Ingrese un numero”) Leer (a) Si a >= 0 entonces Escribir (“El numero es negativo”) Sino Escribir (“Es positivo”) Fin PASCAL Program Negative; Uses crt; Var a:real; Begin clrscr; Writeln ('Ingrese un numero'); Readln (a); If a<=0 then Writeln ('El numero es negativo') else Writeln ('POSITIVO'); End. EJERCICIO 5 Elaborar un algoritmo que lea dos números desde el teclado y si el primero es mayor que el segundo, intercambie sus valores. ANÁLISIS DE:dos números reales DS:dos números reales Debo saber que: En este caso debemos intercambiar los valores SIN utilizar ningun tipo de variable auxiliar. DISEÑO Algoritmo Intercambiar Léxico a,b : R Inicio Escribir (“Ingrese dos numero”) Leer (a,b) Si a>b entonces a ← a+b b ← a-b a ← a-b Escribir (“Los números ingresados intercambiados son”,a “y”, b) Fin PASCAL program Intercambiar; Uses crt; Var a,b : Real; Begin clrscr; Writeln ('Ingrese dos numeros'); Readln (a); Readln (b); If a>b then a := a+b; b := a-b; a := a-b; Writeln ('Los valores intercambiados son ', a:10:2 , ' y ', b:10:2); End. EJERCICIO 6 Desarrollar un algoritmo que detecte si se han introducido tres numeros en orden creciente. ANALISIS DE: tres numeros reales DS: Un mensaje afirmativo si los numeros fueron ingresados en forma creciente. DISEÑO Algoritmo creciente Léxico a,b,c : R Inicio Escribir (“Ingrese tres números”) Leer (a,b,c) Si a < b < c entonces Escribir (“Los números fueron ingresados en orden creciente”) sino Escribir (“No”) Fin PASCAL program creciente; Uses crt; var a,b,c : Real; begin clrscr; Writeln ('Ingrese tres numeros'); Readln (a); Readln (b); Readln (c); If (a < b) and (b< c) then Writeln ('Los numeros fueron ingresados en orden creciente') else Writeln ('No'); End. EJERCICIO 7 Desarrollar un algoritmo que lea desde el teclado el importe bruto de una factura y determine el importe neto según los siguientes criterios: -Importe bruto menor a 20.000 → Sin descuento -Importe bruto mayor a 20.000 → 15% de descuento ANALISIS DE: un numero real DS: un numero real Debo saber que: -Importe bruto menor a 20.000 → Sin descuento -Importe bruto mayor a 20.000 → 15% de descuento DISEÑO Algoritmo Importe Léxico importe:R Inicio Escribir (“Ingrese el importe bruto”) Leer (importe); Si importe > 20.000 entonces importe ← importe + (importe * 0,15) Escribir (“El importe mas el descuento es”, importe) sino importe ← importe Escribir (“No hay descuento el importe es”, importe) Fin PASCAL Program Impor; Uses crt; var importe:Real; Begin clrscr; Writeln ('Ingrese el importe bruto'); Readln (importe); If importe >= 20000 then importe := importe - (importe * 0.15); Writeln ('El importe mas el descuento es', importe:10:2); If importe < 20000 then Writeln ('El importe sin descuento es', importe:10:2); End. EJERCICIO 8 Desarrollar un algoritmo que una vez leída una Fecha en formato dd/mm/aaaa, indique cual sera la fecha un día después. ANALISIS DE: 3 variables correspondientes a dd mm y aaaa DS: 3 variables, correspondientes a dd mm y aaaa pero un dia despues PASCAL Program gdosEjentr; Var Mes31, Mes30, Mes28, Mes12, aniobisiesto : Boolean; dia, mes, anio : integer; Begin {Pre-Condicion: Dia > 0, mes > 0, anio > 0} Writeln ('Ingrese el dia mes y año en formato dd / mm / aaaa'); Readln (dia); Readln (mes); Readln (anio); Mes31 := (mes= 01) or (mes= 03) or (mes= 05) or (mes= 07) or(mes= 08) or(mes= 10); Mes30 := (mes=04) or (mes=06) or (mes=09) or (mes=11); Mes28 := (mes=02); Mes12 := (mes=12); Aniobisiesto := ((anio mod 4 =0) and (anio mod 100 <> 0)) or (anio mod 400=0); If (dia < 31) and (mes31) then Begin dia := dia+1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If ( dia < 30) and (mes30) then Begin dia := dia+01; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia < 28) and (mes28) then Begin dia := dia+1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia =31) and (mes31) then Begin dia := 01; mes := mes +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia = 30) and (mes30) then Begin dia := 01; mes := mes +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia = 28) and (mes28) and (Aniobisiesto) then Begin dia:= dia +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia = 31) and ( mes12) then Begin dia:= 01; mes:= 01; anio:= anio +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia < 31) and (mes12) then Begin dia:= dia +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia = 28) and (mes28) then Begin dia := 01; mes := mes +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End else begin If (dia = 29) and (mes28) and (Aniobisiesto) then Begin dia := 01; mes := mes +1; Writeln ('La fecha un dia despues es', dia,',', mes,',', anio) End Else begin Writeln ('La fecha ingresada no es valida, ingrese otra'); End; End; End; End; End; End; End; End; End; End; {Post-Condicion : Si (dia < 31) ^ (mes31) entonces dia, mes, anio: Resultado0 Si (dia < 30) ^ (mes30) entonces dia, mes, anio: Resultado1 Si (dia < 28) ^ (mes28) entonces dia, mes, anio: Resultado2 Si (dia = 31) ^ (mes31) entonces dia, mes, anio: Resultado3 Si (dia = 30) ^ (mes30) entonces dia, mes, anio: Resultado4 Si (dia = 28) ^ (mes28) ^ (aniobisiesto) entonces dia, mes, anio: Resultado5 Si (dia = 31) ^ (mes12) entonces dia, mes, anio: Resultado6 Si (dia < 31) ^ (mes12) entonces dia, mes, anio: Resultado7 Si (dia = 28) ^ (mes28) entonces dia, mes, anio: Resultado8 Si (dia = 29) ^ (mes28) ^ (Aniobisiesto) entonces dia, mes, anio: Resultado9 Sino La fecha ingresada es invalida} End. EJERCICIO 9 Desarrollar una función que permita encontrar el máximo y otra el mínimo entre 4 números reales DISEÑO Funcion Máximo (dato a,b,c,d : R ) → R Lexico local max,maxi:R Inicio max:= ((a+b)+abs(a-b))/2 maxi:=((max+c)+abs(max-c))/2 ← ((maxi+d)+abs(maxi-d))/2 Fin Función Mínimo (dato a,b,c,d :R) → R Inicio Si a<b<c<d entonces ← a sino si b<a<c<d entonces ← b sino si c<a<b<d entonces ← c sino si d<a<b<c entonces ← d Fin PASCAL Esta es la funcion, ATENCIóN ESTE CASO ESTA TRADUCIDA SOLAMENTE LA FUNCION POR LO QUE FALTA UNA PARTE; QUE SERIA EL DISEÑO DE EL ALGORIMO QUE VA A TENER LA FUNCION DENTRO DEL LEXICO O VAR. DE ESTA FORMA NO LES VA A COMPILAR.. Function Maximo (a,b,c,d :Real): Real; var max, maxi :R; Begin max:= ((a+b)+abs(a-b))/2; maxi:=((max+c)+abs(max-c))/2; Maximo := ((maxi+d)+abs(maxi-d))/2; End. Funcion MINIMO: Function Minimo (a,b,c,d :Real):Real; Begin If a<b<c<d then Minimo:= a; If b<a<c<d then Minimo:= b; If c<a<b<d then Minimo:= c; If d<a<c<b then Minimo:= d; End. EJERCICIO 10 Desarrollar un algoritmo que permita visualizar los numeros pares entre 1 y 25 DISEÑO Algoritmo Paresentre Lexico Inicio repetir Si i mod 2 =0 entonces Escribir (i) i ← i+1; Hasta (i=25) Fin PASCAL Program Paresentre; Var i: integer; Begin i:=1; Repeat If (i mod 2) = 0 then begin Writeln (i); End; i := i+1; Until (i=25); End. EJERCICIO 10 Desarrollar un algoritmo que CALCULE EL MCM Y MCD de dos numeros: PASCAL Program MCMMCD; Uses crt; Var a,b,a2,b2,MCM :real; Begin clrscr; Repeat Writeln ('Ingrese dos numeros'); Readln (a); Readln (b); until (a>0) and (b>0); a2:=a; {Almaceno las variables para no perder el valor inicial, esto es para calcular el mcm} b2:=b; repeat If a>b then Begin a:=a-b; b:=b; end; If a<b then Begin a:=a+b; b:=a-b; a:=a-b; end; Until (a=b); Writeln ('El MCD entre los numeros es ', a:10:1); MCM:=a2*b2/a; {El calculo del MCM se puede realizar haciendo el producto de a * b y dividiendolo por el mcd} Writeln ('El MCM entre los numeros es ', MCM:10:1); End. MI PROXIMO POST, EN MUY POCO TIEMPO SERA, COMO INSTALAR PLACA WIFI EN UBUNTU!! SALUDOS Y COMENTEEEEN!!

107
16
T
Te cagas de risa, seguro!
HumorporAnónimo6/29/2011

Hola gente, bienvenidos a mi nuevo post, voy a tratar de dejarles los videos mas graciosos que vi, y algunos bastantes nuevos, espero que lo difruten! Algunos de los Huevocartoons Quema de marihuana jaja Circulito y cuadradito! Recien Garché Gallego Vs Americano Residencia del señor bruno diaz La venganza del usuario! xD Luis moya Pato pizza Que te paso boludo! La yaki Algunos de la naranja! Bob fumado Mario Gracias por pasar

0
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.