Skocz do zawartości
Forum komputerowe PC Centre
Taysha

Pomoc w zadaniu z turbo pascala

Rekomendowane odpowiedzi

Witam

Jestem całkiem początkującym w kwestii funkcji i procedur Pascala.

Mam do wykonania dwa zadania i nie do końca umiem sobie z nimi poradzić.

Będę wdzięczna za pomoc.

Program Liczby_pierwsze -> program, który wyszuka liczby pierwsze z przedziału [2..N]

Udało mi sie go wykonać, ale nie wiem jak sprawić, by program powtarzał się dopóki nie nacisnę klawisza np. "Q".

Oraz dźwiękiem i komunikatem "błędne dane!" sygnalizował błąd jeśli zostanie wybrana litera lub zły klawisz.

 

 

Program Liczby_pierwsze;

Uses Crt;

Var N, K : Integer;

i, j : Integer;

Licz : Integer;

Begin

Repeat

Clrscr;

textcolor(3);

Writeln('Podaj liczbe naturalna z przedzialu (2;N)');

Write('n = ');

Readln(N);

Until (N > 2);

 

K:= 2;

textcolor(13);

Write('Liczby pierwsze: ',2,' ');

For i:=2 To N Do Begin

Licz :=0;

For j:=2 To N Do

If ((i mod j) = 0) Then Licz:=Licz+1;

If Licz = 3 Then Begin

Write(i,' ');

K:=K+1

End;

End;

Writeln;

Writeln('Liczba liczb pierwszych = ',k);

Repeat Until Keypressed;

End.

 

 

Program Celsjusz_Fahrenheit -> Zamiana temperatury ze skali Celsjusza na skalę Fahrenheita i odwrotnie wg poniższych wzorów:

°F = (°C × 9/5) + 32

°C = (°F − 32) * 5/9

Ten program jest dla mnie bardzo trudny do wykonania, zrobiłam coś co wg mnie powinno działać, ale niestety tak nie jest.

Nie widać kolorów, nie czyta 'f' i 'c' i nie powtarza się do momentu wyboru np. "Q".

Nie wiem jak sie do tego zabrać.

 

program Celsjusz_Fahrenheit;

uses crt;

var

skala : char;

temp : real;

wynik: real;

begin

clrscr;

writeln;

writeln ( ' Zamiana temperatur ze skali Celsjusza na skale Fahrenheita i odwrotnie:');

writeln;

writeln ( 'Oznaczenie skal: ');

writeln ( ' C skala Celsjusza');

writeln ( ' F skala Fahrenheita');

writeln;

writeln('wprowadz temperature: ');

read (temp);

writeln('podaj skale w jakiej chcesz uzyskac wynik: ');

skala:=readkey;

case skala of

'C':begin

textcolor(3);

wynik:= (temp*(9/5))+32 ;

writeln(temp:5:1,' C',' = ', wynik:5:1,' F');

end;

'F':begin

textcolor(14);

wynik:=(temp-32)*(5/9);

writeln(temp:5:1,' F',' = ', wynik:5:1,' C');

end

else

begin

textcolor(15);

writeln ('Bledne dane!!');

sound(1500) ;

delay(300);

nosound;

delay(1000);

end;

end;

end.

 

 

 

Z góry dziękuję za pomoc!

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

×
×
  • Dodaj nową pozycję...