05/02/07 16:44
Vi scrivo quanto riportato da un libro:
"Il responsabile di una biblioteca pubblica, Saro De Corvis, vuole effettuare un controllo sul numero di maschi e di femmine che, giorno per giorno, la frequentano. Per ottenere ciò fa collegare un personal computer con il dispositivo di ingresso alla biblioteca, in modo che l'accesso venga consentitolo solo a coloro che abbiano premuto il tasto cirrispondente al loro sesso (M/F). Costruire un programma che, simulando il controllo sulla porta di ingresso, permetta al direttore, e solo a lui, in ogni momento della giornata, il numero di maschi e di femmine che sono entrati."
Ecco il programma:
program biblioteca;
uses crt;
var cod:string;
m,f:integer;
giornatafinita:boolean;
ris:char;
begin
m:=0;
f:=0;
giornatafinita:=false;
repeat
clrscr;
writeln('Digita M se sei maschio, o digita F se sei femmina');
readln(cod);
if (cod='m') or (cod='M') then
begin
m:=m+1;
writeln('Avanti');
end;
if (cod='f') or (cod='F') then
begin
f:=f+1;
writeln('Avanti');
end;
if (cod='saro') or (cod='SARO') then
begin
writeln('Attualmente sono entrati ',m,' maschi e ',f,' femmine');
writeln('E'' finita la giornata?');
readln(ris);
if (ris='s') or (ris='S') then
begin
giornatafinita:=true;
writeln('Premi Invio per continuare');
end;
end;
if (cod<>'f') or (cod<>'F') or (cod<>'m') or (cod<>'M') then writeln('Codice errato, riprovare');
readln
until giornatafinita;
end.
Il problema è che, anche se premo m o f, mi appare sia la scritta Avanti che la scritta "Codice errato, riprovare". E' davvero molto strano, io non riesco a capire dov'è l'errore... aiutatemi please!
"Il responsabile di una biblioteca pubblica, Saro De Corvis, vuole effettuare un controllo sul numero di maschi e di femmine che, giorno per giorno, la frequentano. Per ottenere ciò fa collegare un personal computer con il dispositivo di ingresso alla biblioteca, in modo che l'accesso venga consentitolo solo a coloro che abbiano premuto il tasto cirrispondente al loro sesso (M/F). Costruire un programma che, simulando il controllo sulla porta di ingresso, permetta al direttore, e solo a lui, in ogni momento della giornata, il numero di maschi e di femmine che sono entrati."
Ecco il programma:
program biblioteca;
uses crt;
var cod:string;
m,f:integer;
giornatafinita:boolean;
ris:char;
begin
m:=0;
f:=0;
giornatafinita:=false;
repeat
clrscr;
writeln('Digita M se sei maschio, o digita F se sei femmina');
readln(cod);
if (cod='m') or (cod='M') then
begin
m:=m+1;
writeln('Avanti');
end;
if (cod='f') or (cod='F') then
begin
f:=f+1;
writeln('Avanti');
end;
if (cod='saro') or (cod='SARO') then
begin
writeln('Attualmente sono entrati ',m,' maschi e ',f,' femmine');
writeln('E'' finita la giornata?');
readln(ris);
if (ris='s') or (ris='S') then
begin
giornatafinita:=true;
writeln('Premi Invio per continuare');
end;
end;
if (cod<>'f') or (cod<>'F') or (cod<>'m') or (cod<>'M') then writeln('Codice errato, riprovare');
readln
until giornatafinita;
end.
Il problema è che, anche se premo m o f, mi appare sia la scritta Avanti che la scritta "Codice errato, riprovare". E' davvero molto strano, io non riesco a capire dov'è l'errore... aiutatemi please!