prosty przykład

Jak w Pascalu napisać program który policzy liczby wpisane!!
np. wpisze: 1 1 4 2 7 5 5 5
wpisałeś 2 – 1
wpisałeś 1 – 4
itp.
program powinien policzyć ile liczb zostało wpisanych.
Bardzo prosze o jakąś podpowiedź

Odpowiedzi: 7

A jaką Ty wersję kompilatora posiadasz?

Opis sporządziłem dla DOSowego TP 7.0 od Borlanda, być moźe Twoja wersja nie wymaga implementacji modułu Crt – jeźeli tak, po prostu usuń tę linię z sekcji Uses.

Czy przedstawiony przeze mnie szkielet programu działa właściwie bez powyźszej instrukcji?
Amon–Ra
Dodano
28.10.2005 23:41:00
Zrobiłem kawałek ale jest jakiś błąd, prosze o sprawdzenie:
program histogram;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
wartosc,a0,b1,c2,d3,e4,f5,g6,h7,i8,j9:integer;
czy_koniec:boolean;
begin
ClrScr;
repeat
readln(wartosc);
czy_koniec:= false;

case wartosc of
1000:czy_koniec:=true;
0:a0:=a0+1;
1:b1:=b1+1;
2:c2:=c2+1;
3:d3:=d3+1;
4:e4:=e4+1;
5:f5:=f5+1;
6:g6:=g6+1;
7:h7:=h7+1;
8:i8:=i8+1;
9:j9:=j9+1;
end;

until czy_koniec;


ClrScr;
writeln('ilosc liczb rownych 0: ',n0);
writeln('ilosc liczb rownych 1: ',n1);
writeln('ilosc liczb rownych 2: ',n2);
writeln('ilosc liczb rownych 3: ',n3);
writeln('ilosc liczb rownych 4: ',n4);
writeln('ilosc liczb rownych 5: ',n5);
writeln('ilosc liczb rownych 6: ',n6);
writeln('ilosc liczb rownych 7: ',n7);
writeln('ilosc liczb rownych 8: ',n8);
writeln('ilosc liczb rownych 9: ',n9);
readln;
end.


A TA OPCJA MI NIE CHODZI PODKREŚLA ŻE JEST BŁAD:
Uses Crt;
hastic
Dodano
28.10.2005 23:28:02
gusioo:
Nie lepiej delay() ?

Moźe być i delay, to juź od załoźyciela wątku zaleźy. Tylko niech wtedy zaprogramuje odpowiednio duźą wielkość.
Amon–Ra
Dodano
28.10.2005 18:15:03
Amon–Ra:
Wtedy teź następuje wyświetlenie wyników – nie znikną one doputy, dopuki naciśnięty zostanie klawisz Enter (ReadLn na końcu kodu).

Nie lepiej delay() ?
Anonymous
Dodano
28.10.2005 16:08:20
Zaprogramuj prostą instrukcję REPEAT UNTIL, która powtarzana będzie n razy (np. bez końca lub do momentu naciśnięcia określonego klawisza). W strukturze pętli zaimplementuj moduł warunkowy (tutaj bardziej uzasadnione wydaje się uźycie instrukcji CASE zamiast IF, który będzie rozpoznawał liczby (mają być tylko jednocyfrowe czyli x = , czy dwucyfrowe takźe?) i zwiększał wartość wprowadzoną jako licznik liczb w razie jej napotkania. W praktyce mogłoby to wyglądać np. tak:

Program Histogram;
Uses Crt;
Var wartosc : integer;
n0, n1, n2, n3, n4, n5, n6, n7, n8, n9 : integer;
czy_koniec : boolean;

Begin

ClrScr;

Repeat

ReadLn(wartosc);
czy_koniec := false;

Case wartosc of
99: czy_koniec := true;
0: n0 := n0+1;
1: n1 := n1+1;
2: n2 := n2+1;
3: n3 := n3+1;
/* ... i tak dalej aź do dziewięciu */
End;

Until czy_koniec;

ClrScr;
WriteLn('Ilosc liczb rownych 0: ',n0);
WriteLn('Ilosc liczb rownych 1: ',n1);
WriteLn('Ilosc liczb rownych 2: ',n2);
WriteLn('Ilosc liczb rownych 3: ',n3);
/* ... i tak dalej, aź do dziewięciu */

ReadLn;

End.


Dawno nie programowałem w Pascalu, zatem nie wiem, czy składnia poleceń jest całkowicie poprawna; w razie wątpliwości skorzystaj z pomocy kompilatora.

Tytułem wyjaśnienia – zastosowałem w programie linijkę postaci Until czy_koniec, która w istocie rzeczy powoduje przerwanie pętli w momencie osiągnięcia przez zmienną czy_koniec logicznej wartości 1 (true). Innymi słowy, pętla kończy się, gdy jako liczbę podasz 99. Wtedy teź następuje wyświetlenie wyników – nie znikną one doputy, dopuki naciśnięty zostanie klawisz Enter (ReadLn na końcu kodu).
Amon–Ra
Dodano
28.10.2005 15:25:57
Przepraszam, ale źle Cie zrozumiałem. Chcesz dostać coś w stylu statystyk. Tylko musisz określić ile tych liczb chcesz wpisać i w jakim przedziale one się będa znjadowały np. 1 do 100
pulkownik
Dodano
28.10.2005 15:22:20
Tutaj masz taki prosty programik, wczytuje cztery liczby, i wypisuje je na ekranie
pulkownik
Dodano
28.10.2005 15:11:12
hastic
Dodano:
28.10.2005 14:07:29
Komentarzy:
7
Strona 2 / 2