PDA

Visualizza la versione completa : [pascal]ricerca i nomi che cominciano con una lettera


multififa
19-12-2004, 19:30
ho un problema in pascal non so come visualizza da un elenco di nomi solo i nomi che cominciano con la c.
i nomi sono memorizzati in un file .dat

cso
19-12-2004, 20:32
program quello_che_vuoi;
uses crt;
const n=10;
type generico = record
appoggio:string[30];
end;

classe=array[1..n] of generico;

var i:integer;
conf:text; {file di testo}
c:classe;
carattere:char;
stringa:string;
trovato:boolean;

Begin
clrscr;
Write('quale carattere vuoi cercare nel file? ');
readln(carattere);
{$I-}
ASSIGN(conf,'c:\nome_file.txt');{gli puoi mettere qualsiasi estensione!}
RESET (conf);
i:=1;
while (not(eof(conf))) do
begin
ReadLn(conf,c[i].appoggio);
i:=i+1;
end;
CLOSE (conf);
{$I+}
{per vedere se la riga "i" del file inizia con una lettera che vuoi tu
basta mettere riga per riga in una stringa e verificare}
trovato:=false;
for i:=1 to 100 do
Begin
stringa:=c[i].appoggio;
if stringa[1]=carattere then
begin
write('trovato "',carattere,'" alla riga ',i);
trovato:=true;
end;
end;
if trovato=false then write('non trovato');
readln;
End.
Se ti serve qualche chiarimento sono qui.
:ciauz:

multififa
20-12-2004, 10:47
program persona;
uses crt;
CONST
lunghezmax=30;
Type
persona =RECORD
Nome:String[10];
Cognome:String[10];
data:string[10];
Sesso:Char;
END;
Var
Anagrafe:file of persona;
Indfile:string;
persona1:persona;
clrscr;
reset (anagrafe);
Writeln ('Nominativi Trovati');
while not (eof(anagrafe)) do
begin
read (anagrafe, persona1);

Qui devo inserire la condizione se il cognome inizia con la 'c' e di sesso 'm' visulizzalo sullo schermo come devo scrivere questa condizione

If (persona1.sesso = 'm') and ???????? then
writeln (persona1.Cognome, ' ', persona1.nome, ' ', persona1.sesso);
i:=i+1;
end;
readln;
end.

cso
20-12-2004, 16:42
Quando inserisci codice nel forum lo devi racchiudere tra
il tuo codice e [/CODE*] senza asterischi
[CODE]
program quello_che_vuoi;
uses crt;
const n=10;
type generico = record
appoggio:string[30];
end;

classe=array[1..n] of generico;

var i:integer;
conf:text; {file di testo}
c:classe;
carattere:char;
stringa:string;
trovato:boolean;

Begin
clrscr;
Write('quale carattere vuoi cercare nel file? ');
readln(carattere);
{$I-}
ASSIGN(conf,'c:\nome_file.txt');{gli puoi mettere qualsiasi estensione!}
RESET (conf);
i:=1;
while (not(eof(conf))) do
begin
ReadLn(conf,c[i].appoggio);
i:=i+1;
end;
CLOSE (conf);
{$I+}
{per vedere se la riga "i" del file inizia con una lettera che vuoi tu
basta mettere riga per riga in una stringa e verificare}
trovato:=false;
for i:=1 to 100 do
Begin
stringa:=c[i].appoggio;
if (stringa[1]=carattere) AND (stringa[1]='M') then
begin
write('trovato "',carattere,'" alla riga ',i);
trovato:=true;
end;
end;
if trovato=false then write('non trovato');
readln;
End.

multififa
20-12-2004, 19:59
:madai!?: :unz: Grazie mille :) :fighet:

cso
20-12-2004, 21:03
:cry: Prego duemila :madai!?:

Loading