śmigli [ Generaďż˝ ]
FreePascal - wielki problem z zadaniem
Witam. Otóż dostałem w szkole program do napisania w FreePascalu. Problem w tym, że kompletnie nie wiem, jak się za to zabrać, jakich procedur i funkcji użyć. Będąc szczerym metodologia programowania nie jest moją mocną stroną.
Treść zadania brzmi: Napisz program, który wczytuje znaki z klawiatury aż do momentu naciśnięcia klawisza 'k', a następnie wypisujący ilość podanych znaków (bez końcowego 'k') oraz informację, ile z tych znaków było dużymi literami, a ile cyframi.
Nie proszę Was o napisanie za mnie programu (chociaż to na pewno w największym stopniu ratowałoby mi skórę), ale proszę o jakiś rady, sugestie. Może orientujecie się, jak to najlepiej zrobić, jak rozgryźć to zadanie.
Z góry dziękuję.
jagged_alliahdnbedffds [ Rock'n'Roll ]
Zmienne: znakowa i trzy do liczników.
Pierwszy licznik od -1 i read w pętli dopóki zmienna nie będzie literką "k". W tej samej pętli po każdym readzie - sprawdzenie czy podana została duża litera (jeśli tak to drugi licznik +1) lub cyfra (jeśli tak to trzeci licznik +1). Na wyjściu wartości trzech liczników.
tomazzi [ Flash YD ]
[1]
Program powinien badać każdy kolejny wciśnięty przycisk. Jeżeli jest to 'k' to program się kończy jeżeli nie to: zwiększa się licznik wszystkich kliknięć, jeżeli litera to zwiększa licznik kliknięć liter, jeżeli cyfra to zwiększa licznik kliknięć cyfr.
śmigli [ Generaďż˝ ]
if ord(x)=[97 122] then a:=a+1;
if ord(x)=[48 57] then b:=b+1;
Mam takie dwa wersy, ale nie pamiętam jakiego znaku tu brakuje aby liczył tam od numeru do numer w ASCII. Nie wiecie może?
Z góry dzięki.

pagare [ Legionista ]
potrzebujesz jeszcze przy tym pomocy?

pagare [ Legionista ]
program zadanie;
uses crt;
var
s,q,k,alf,cyfry,x:string;
i,j,a,b,c,m,n:integer;
begin
clrscr;
alf:='ABCDEFGHIJKLMNOPRSTUWXYZ';
cyfry:='1234567890';
writeln('podawaj litery lub cyfry, jak ci sie znudzi nacisnij k');
repeat
write('podaj:');
readln(q);
s:=s+q;
until(q='k');
a:=length(s);
writeln;
writeln;
for n:=1 to a-1 do
write('twoje litery i wyrazy to:',s[n]);
for i:=1 to a-1 do
begin
x:=s;
writeln;
writeln;
for j:=1 to 24 do
begin
if (x=alf[j]) then
c:=c+1;
end;
for m:=1 to 10 do
begin
if (x=cyfry[m]) then
b:=b+1;
end;
end;
writeln('duzych liter alfabeu jest:',c);
writeln('cyfr jest:',b);
readkey;
end.
wydaje mi się, że ma to wyglądać mniej więcej tak.