Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: problema Pascal  (Citit de 4875 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ConstellationP
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Aprilie 22, 2012, 12:56:32 »

Buna ziua.
Va rog sa ma ajutati la o problema Pascal.
Problema cere sa elaborez un program care citeste de  datele  la n persoane (n<50) si afiseaza pe ecran :a)persoana cea mai in varsta; b) cea mai tanara;

Iata ce am reusit sa fac

Program P3;
type Data=record
ziua:1..31;
luna:1..12;
anul:integer;
end;
Persoana=record
NumePrenume:string;
DataNasterii:Data;
end;
ListaPersoane=array [1..50] of Persoana;
var n,i:integer;
LP:ListaPersoane; loc:string;
begin
writeln ('Introduceti numarul de persoane;); readln(n);
writeln('Introduceti datele');
for i:=1 to n do begin
writeln('Numele si prenumele:'); readln (LP[ i ].NumePrenume);
writeln('Ziua nasterii'); readln (LP [ i ].DataNasterii.ziua);
writeln('Luna nasterii'); readln(LP[ i ].DataNasterii.luna);
writeln('AnulNasterii'); readln(LP[ i ].DataNasterii.anul);


Pana aici rogramul citeste datele. Va rog sa-mi dati o ideee cum sa rezolv unctul a. Am incercat cateva variante, dar nu au mers.
Multumesc anticipat.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #1 : Aprilie 22, 2012, 13:47:17 »

Pentru a) afli prima data dintre cele n din punct de vedere cronologic. (compari prima data anul, apoi luna, apoi ziua) Pentru b) tot asa, doar ca afli ultima data.
Memorat
ConstellationP
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #2 : Aprilie 22, 2012, 13:53:23 »

Asa m-am gandit si eu, dar nu stiu cum sa transpun asta.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #3 : Aprilie 22, 2012, 16:20:26 »

Cod:
var DataMinima:Data;
............................
DataMinima.anul = maxint;
for i:=1 to n do
  if LP[i].anul < DataMinima.anul then
     DataMinima := LP[i]
  else
     if LP[i].anul = DataMinima.anul and LP[i].luna < DataMinima.luna then
        DataMinima := LP[i]
     else
       if LP[i].anul = DataMinima.anul and LP[i].luna = DataMinima.luna and LP[i].ziua < DataMinima.ziua then
           DataMinima := LP[i];

N-am verificat sa vad daca merge, dar ceva de genul asta ar trebui sa fie. La fel si pentru b.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines