Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
MPBass
Nivel 3



Registrado: 14 Dic 2011
Mensajes: 28


blank.gif
MensajePublicado: Dom Jun 17, 2012 10:00 pm  Asunto:  auxilio con ejercicio de Pascal Responder citandoFin de la PáginaVolver arriba

Hola, qué tal? Necesito por favor ayuda urgente que me estoy desesperando a más no poder, para resolver estos 2 ejercicios.. estoy muy trabada y tengo que rendir en la semana... se agradece!!!

ejercicio 1:
cargar un vector de 30 elementos con edades de participantes de un concurso. Mostrar las edades de los 12 participantes más jovenes e indicar la diferencia de edad entre el mayor y el menor.
Realizar la carga del vector a través de un subprograma 'carga' que devuelva el vector cargado, y obtener la diferencia de edades a traves de un subprograma 'diferencia' que reciba el vector.

ejercicio 2:
Ingresar por teclado 20 nombres de alumnos de hasta 25 caracteres. Mostrarlos ordenados alfabéticamente. Se debe informar al final cuántos nombres comienzan con consonante.
Crear la función 'primeraesvocal' que recibe un nombre de alumno como parametro y devuelve Verdadero o Falso según si el nombre empieza con vocal o no. Utilizar dicha funcion dentro de su programa para calcular el total que debe mostrar.
(PREGUNTA: Si me hubiera pedido ordenar alfabéticamente SÓLO aquellos que comiencen con una vocal?)


   OfflineGalería Personal de MPBassVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Jun 17, 2012 10:09 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Hola, todo bien, vos?

Va con onda...
Estas esperando que magicamente aparezca una resolucion de los ejercicios? una ayuda? pseudocodigo?
Sino expecificas donde te trabaste o tiras codigo no se entiende.

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
MPBass
Nivel 3



Registrado: 14 Dic 2011
Mensajes: 28


blank.gif
MensajePublicado: Dom Jun 17, 2012 10:47 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

claro, en realidad no sirve de mucho que diga lo que hice porque no me está saliendo, por eso dije "una ayuda", no creo que alguien lo resuelva entero, pero por lo menos una orientación más o menos de lo que debería hacer.
gracias!


   OfflineGalería Personal de MPBassVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Jun 17, 2012 11:02 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

1- cargas un vector, lo ordenas por edad, imprimis los 1ros 12 y haces edad del 12 - edad del 1.

Sino te sale eso a esta altura me parece que estas bastante al horno.


2- Te armas la funcion si la 1ra es vocal o no, recibis los nombres por teclado, validas que sean 25 caracteres, los ordenas alfabeticamente, los mostras y de paso vas caculando cuantos empiezan con vocal y haces (total-eso) o cuantos empiezan con consonante y devolves ese numero.
Si te piden ordenar solo aquellos que empiezan con vocal, deberias de crearte otro vector, y si te lo enseñaron, ir insertando ordenado, sino insertas todos y dsp lo ordenas.

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
MPBass
Nivel 3



Registrado: 14 Dic 2011
Mensajes: 28


blank.gif
MensajePublicado: Dom Jun 17, 2012 11:09 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

no tengo problemas en cargar un vector y ordenarlo por edad, pero no tengo muy en claro cómo meter ese vector en el subprograma 'diferencia' para calcular la resta de edades como piden ahí.

gracias por la ayuda.


   OfflineGalería Personal de MPBassVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Jun 17, 2012 11:19 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Haces un procedimiento "procedure" que reciba un vector y como ya sabes q va ordenado por edad, e impimis por pantalla "vector[12].edad - vector[1].edad", o como sea que se manejen registros en pascal y listo.

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
DiegoSLTS
Nivel 6


Edad: 37
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Dom Jun 17, 2012 11:33 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Igual está bueno saber que hiciste, por mas que no ande es diferente buscar un error a decirte como encararlo. No importa si como lo planteaste está "mal", pero algo tenés que tener escrito y capaz son errores faciles de corregir.

Te tiro un par de ideas que se me ocurren, pero si lo que ya tenés es muy diferente a esto probablemente te lleve mas tiempo cambiar todo que compartir lo que tenés hecho y que te ayudemos con eso.

Hace mucho que no uso Pascal, pero para el primero se me ocurre:
El programa "Carga" tiene que tener un for de 0 a 29, donde te pida que ingreses un número entero en cada iteración, guardando todo en un arreglo de 30 posiciones. O (mejor, pero lleva mas trabajo), un while donde puedas validar lo que ingresa la persona, y llevar la cuenta de cuantas edades son correctas, para cortar el while cuando tengas 30 edades.
Después en alguna parte (no aclara en el enunciado que pasaste) tenés que ordenar de menor a mayor o de mayor a menor ese arreglo, buscá como implementar el burbujeo que es lo mas simple que hay.
Una vez que tengas ordenado el arreglo se lo pasas al programa "Diferencia" que solamente tiene que devolver la resta del mayor menos el menor.

Para el segundo:
Vas a necesitar si o si un while, porque tenés que validar la longitud del nombre que ingresan. Hace un while, adentro pedis que se escriba un nombre y lees la entrada de teclado. Cuando tenés la linea chequeas el largo, si es menor o igual a 25 lo guardas y aumentas un contador, sino no hacés nada. En el while comparas el contador contra 20, a ver si llegaste a la cantidad que te piden.
Los podés ordenar usando burbujeo, aunque no me acuerdo si pascal te dice directamente si una cadena es "menor" que otra o si tenés que hacerlo a mano caracter a caracter.
Para chequear si la primer letra es vocal (para la funcion primeraesvocal) tenes que hacer un if compuesto con "AND", comparando la primer letra (creo que en pascal podés hacer "lala[0]" si la variable "lala" es un string) contra a, e, i, o y u, devolviendo true si es verdadero y false si es falso.
Después con un for de 0 a 19 podes recorrer todo el arreglo de nombres, para cada valor llamas a la funcion y si da falso, sumas a un contador, sino no haces nada. Al terminar el for en el contador te queda la cantidad de personas con nombre que empieza con consonante.
Si tenés que mostrar las personas con nombre que empieza con vocal y ordenarlas, te podés armar un arreglo de 20 posiciones, recorrés con un for los nombres ya ingresados y vas copiando al otro arreglo solamente los nombres que empiecen con vocal, siempre llevando la cuenta de cuantos encontraste (el arreglo va a tener 20 posiciones, pero si solamente habian 5 personas con vocal, cuando lo recorras para mostrarlo tenes que recorrer las primeras 5 posiciones, si recorres las 20 vas a tener basura en el resto).

_________________
No tengo firma...

.... un momento... SI TENGO!

Cancer Género:Masculino Tigre OfflineGalería Personal de DiegoSLTSVer perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioYahoo MessengerMSN Messenger
DiegoSLTS
Nivel 6


Edad: 37
Registrado: 14 Ago 2006
Mensajes: 219
Ubicación: Bernal, Quilmes
Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Dom Jun 17, 2012 11:48 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Postearon mientras escribia mi respuesta, no me di cuenta.

Supongo que cuando habla de programa habla de procedimientos o funciones como dice csebas. Pascal puede ejecutar un proceso en el medio de otro, pero no creo que en esta materia usen algo de ese estilo (es muy rebuscado hacer lo que te piden con programas distintos). Si estabas tratando de hacer esto último yo diría que cambies de idea por lo otro :P, si no sabés como definir procedimientos y funciones y como llamarlos en el código acá hay un ejemplo: http://en.wikibooks.org/wiki/Pascal_Programming/Syntax_and_functions

Pascal también tiene el concepto de "Units" para agrupar cosas en archivos separados, pero también, no creo que se vea en esta materia ni se justifica hacer algo así de rebuscado para los ejercicios que te dieron.

_________________
No tengo firma...

.... un momento... SI TENGO!

Cancer Género:Masculino Tigre OfflineGalería Personal de DiegoSLTSVer perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioYahoo MessengerMSN Messenger
MPBass
Nivel 3



Registrado: 14 Dic 2011
Mensajes: 28


blank.gif
MensajePublicado: Lun Jun 18, 2012 12:09 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Bueno, antes que nada, MUCHAS gracias por todo. Estoy intentando que me salga, por si quieren ver, les mando el codigo. Me daba verguenza poner alguna burrada ja pero bueno, como verán no tengo mucha idea. Ahí va el 1:

program ejercicio1;
var
i,j,aux:integer;
edades: array [1..30] of integer;
procedure carga;
begin
for i:=1 to 30 do
begin
readln(edades[i]);
end;
for i=1 to 29 do
begin
for j=i+1 to 30 do
begin
if edades [j] < edades [i] then
begin
aux := edades [i];
edades [i] := edades [j];
edades [j] := aux;
end;
end;
end;
for i:=1 to 12 do
writeln(edades[i]);
readln;
end;
procedure diferencia (var r: integer);
begin
r:= edades [12] - edades [1];
end;
begin
diferencia(r);
writeln('la diferencia es ', r);
readln;
end.


El error que me tira es que r no esta definida, por eso decia que seguramente no puedo hacer r= edades [12] - edades [1] .. o sea, no se como llevar ese vector al procedure diferencia.


   OfflineGalería Personal de MPBassVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Lun Jun 18, 2012 12:21 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

El procedimiento deberia de recibir "edades" que es un vector y no "r" que es un entero, r es una varaible entera que definis dentro del procedimiento y la impresion se hace en el mismo procedimiento, obviamente que r no esta definido donde lo estas usando.

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
MPBass
Nivel 3



Registrado: 14 Dic 2011
Mensajes: 28


blank.gif
MensajePublicado: Lun Jun 18, 2012 1:23 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

ME SALIO!! Cambie casi todo pero me salio por fin!! jaja pesimo lo mio
muchas gracias
saludos!


   OfflineGalería Personal de MPBassVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2249s ][ Pedidos: 20 (0.1752s) ]