Foros DeCeMuLaDoReS

Retroceder   Foros DeCeMuLaDoReS > PC > Programación

Programación Escribe aquí todo lo relacionado sobre programación, ya sea C, C++, PHP, etc, etc...

Respuesta
 
LinkBack Herramientas
  #1 (permalink)  
Antiguo 29-Nov-2010, 18:02
Avatar de alvaroalca
alvaroalca llegará a ser famoso muy pronto
DC Fanático
 
Fecha de Ingreso: 26-May-2008
Ubicación: saturno
Mensajes: 178
Posts agradecidos: 48
Agradecido 14 veces en 13 posts
Predeterminado problema con ejercicios en pascal

bueno pues el titulo lo dice, tengo que hacer dos ejercicios para informatica en pascal, el profesor da por sentado muchas cosas y yo por lo tanto no aprendo, si pudieran hacer los dos programas que se piden se lo agradeceria eternamente.

Spoiler para ejercicios:
Ejercicio 1
A partir de la siguiente estructura de datos:
const
MaxLongCad = 255;
FinCad = ‘@’;
type
tpCadV = array[1..MaxLongCad+1] of char;

en la que una cadena de caracteres se representa mediante un vector de caracteres
(comenzando desde la posición 1 hasta la aparición del carácter especial FinCad que
no se considerará como parte de la cadena), desarrollar en Pascal los siguientes
procedimientos y funciones:

procedure LeerCadena (var cad: tpCadV);
{lee de teclado una cadena de caracteres finalizada por el carácter FinCadena y la devuelve a través del
parámetro cad}

procedure EscribirCadena (cad: tpCadV);
{escribe en pantalla la cadena de caracteres pasada a través del parámetro cad}

procedure ConcatenarCadenas (cad1, cad2: tpCadV; var cad: tpCadV);
{devuelve a través de cad la cadena de caracteres resultante de concatenar las cadenas cad1 y cad2}

function LongitudCadena (cad: tpCadV): integer;
{devuelve el número de caracteres de la cadena cad}

Pregunta 1: ¿Es necesario definir la dimensión de vector como se ha hecho o podría
hacerse con una componente menos?

Ejercicio 2
Un grupo de compañeros de trabajo quiere concretar una fecha para reunirse a comer durante el
próximo mes de diciembre. Como pueden ser muchos compañeros y cada uno de ellos tiene
comprometidas un buen número de fechas de dicho mes, se pide desarrollar un programa Pascal
que indique las posibles fechas en las que celebrar la comida de confraternización.
Cada compañero de trabajo escribirá las fechas que tiene comprometidas como una secuencia de
enteros finalizada con un fin de línea. Habrá tantas líneas como asistentes a la comida. Para
determinar el final de la introducción de fechas comprometidas, se introducirá el valor cero (marca de
finalización). A partir de ese momento, el programa deberá calcular las posibles fechas para la
celebración de la comida.

Dada la siguiente la entrada de datos

9 5 12 21 24 22
2 9 18 19 25 29 30 31
1 3 10 11 12 22
27 15 16 17 5
0

El resultado de la ejecución sería:

Número de asistentes: 4

Las posibles fechas para la celebración de la comida son:

4 6 7 8 13 14 20 23 26 28


Sugerencia: Utilizar la función eoln, que devuelve true si no hay datos en la línea actual del buffer
de la entrada estándar (teclado) o false en caso contrario (hay datos en la línea).


gracias de antemano, es medianamente urgente
__________________

¿Qué personaje masculino de Kingdom Hearts eres?
¡Compruébalo AQUÍ!
Responder Citando
  #2 (permalink)  
Antiguo 29-Nov-2010, 21:29
Mortadelo no se puede cailificar en este momento
Especialista DC
 
Fecha de Ingreso: 24-September-2009
Mensajes: 333
Posts agradecidos: 5
Agradecido 59 veces en 57 posts
Predeterminado Respuesta: problema con ejercicios en pascal

¿Por qué no pones tu propuesta indicando exactamente qué es lo que no sabes hacer y a partir de ahí se te ayuda? Creo que el objetivo es que te calientes tú la cabeza un poquito y, si no ves algo concreto, se te explica.
Responder Citando
  #3 (permalink)  
Antiguo 29-Nov-2010, 21:43
Avatar de GHERSA
GHERSA no se puede cailificar en este momento
DC Junior
 
Fecha de Ingreso: 30-April-2009
Mensajes: 38
Posts agradecidos: 3
Agradecido 14 veces en 9 posts
Predeterminado Respuesta: problema con ejercicios en pascal

Pues simplemente es un vector de caracteres de 255 espacios, con un ciclo debería bastar para cada procedimiento, solo verificar cada carácter hasta en contra @;

El segundo, para terminar rápido, has un vector de integer de 0 a 31, y en cada número que digan que tienen un compromiso súmale 1, al final recórrelo y regresa el numero de posición si su contenido es menor a 1;
Responder Citando
  #4 (permalink)  
Antiguo 30-Nov-2010, 05:41
Avatar de alvaroalca
alvaroalca llegará a ser famoso muy pronto
DC Fanático
 
Fecha de Ingreso: 26-May-2008
Ubicación: saturno
Mensajes: 178
Posts agradecidos: 48
Agradecido 14 veces en 13 posts
Predeterminado Respuesta: problema con ejercicios en pascal

pues veran tengo problemas a la ora de programar el procedimiento 1 y 2 del ejercicio 1, no tengo muy claro como y cuando colocar los bucles y hacer qu lea la cadena, repito que el profesor explico hace dos dias los vectores, pero no le dio la gana explicar un poco mejor y no se muy bien como se usan y no los entiendo
__________________

¿Qué personaje masculino de Kingdom Hearts eres?
¡Compruébalo AQUÍ!
Responder Citando
  #5 (permalink)  
Antiguo 30-Nov-2010, 21:50
Mortadelo no se puede cailificar en este momento
Especialista DC
 
Fecha de Ingreso: 24-September-2009
Mensajes: 333
Posts agradecidos: 5
Agradecido 59 veces en 57 posts
Predeterminado Respuesta: problema con ejercicios en pascal

Cita:
Iniciado por alvaroalca Ver Mensaje
pues veran tengo problemas a la ora de programar el procedimiento 1 y 2 del ejercicio 1, no tengo muy claro como y cuando colocar los bucles y hacer qu lea la cadena, repito que el profesor explico hace dos dias los vectores, pero no le dio la gana explicar un poco mejor y no se muy bien como se usan y no los entiendo
Un vector (o array) es una estructura tal que así:

[ X , X , X , X , X ]

Como ves, esta estructura tiene varias "posiciones", en el ejemplo concretamente 5, ocupadas (o no) por elementos, nuestras X.

La forma de agregar o eliminar elementos en pascal no te la puedo explicar exactamente porque no la sé, pero podría ser algo como esto:

siendo v = [ , , , ]
v[1] = X
v pasa a valer [ X , , , ]
v[2] = M
v pasa a valer [ X , M , , ]
v[4] = C
v pasa a valer [ X , M , , C ]

y no tiene más, eso son vectores.
Normalmente y como te habrán enseñado, todas las variables deben ser inicializadas.
La inicialización de un vector o array pasa por darle un tamaño, por ejemplo en java, un vector de caracteres con 5 posiciones se declararía así:

char[] vCaracteres = new char[5];


Lo que te piden en los ejercicios es que leas de teclado n caracteres y los vayas almacenando en un array tal que así:

[ h , , , ]
[ h , o , , ]
[ h , o , l , ]
[ h , o , l , a]

Debes tener en cuenta que la longitud de tu array será variable (por ejemplo en Visual Basic tienes la orden "ReDim Preserve")

Así mismo, como debes leer n caracteres, el bucle que debas poner tendrá que estar ubicado en el procedimiento de lectura y dentro de él deberás leer el caracter pulsado, evaluar si es condición de fin y, en caso negativo, agregarlo a la siguiente posición vacía de tu vector.

Análogamente, el procedimiento de escritura.
Responder Citando
Los siguientes usuarios agradecieron a Mortadelo este mensaje:
alvaroalca (01-Dec-2010)
Respuesta


(0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema del emulador dolphin Gnew GameCube 13 15-Sep-2011 20:20
Problema para abrir puertos TP-LINK y wow. fedekapo6 Centro de Mantenimiento 4 25-Apr-2010 23:59
Problema con Guitar Hero 3 y Modificados, se traban Soiden Wii 2 23-Mar-2010 16:35
Matematicas Entendibles Equilibrio Biblioteca 3 08-Jan-2010 04:55
Problema con teclado en aeRO (Ragnarok) varyto Juegos (On-line, Off-line) 7 02-Sep-2008 00:54


Torneo DC 2012
Torneo DC 2012

La franja horaria es GMT +1. Ahora son las 21:47.


Desarrollado por: vBulletin® Versión 3.8.2
Derechos de Autor ©2000 - 2012, Jelsoft Enterprises Ltd.
Traducido por mcloud de vBhispano.com
 

Content Relevant URLs by vBSEO 3.2.0