Turbo Pascal -zadanie

Kamilka54
Użytkownik
Użytkownik
Posty: 115
Rejestracja: 15 lis 2007, o 14:03
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 4 razy

Turbo Pascal -zadanie

Post autor: Kamilka54 »

Mam takie zadanie:
Napisz program, który wyświetla wszystkie liczby dwucyfrowe nieparzyste,
z zakresu podanego z klawiatury.

I nie wiem, w jaki sposób przedstawić to w TP, z zaznaczeniem, że muszą to być liczby tylko dwucyfrowe.
turkiSh
Użytkownik
Użytkownik
Posty: 31
Rejestracja: 3 lut 2009, o 16:14
Płeć: Mężczyzna
Podziękował: 6 razy
Pomógł: 1 raz

Turbo Pascal -zadanie

Post autor: turkiSh »

algorytm moze wygladac nastepujaco:

0. "a" i "b" integer;

1. wczytujesz "a" i "b" (zakres podany z klawiatury)

2. sprawdzasz ktora z nich jest mniejsza jesli nie sa podawane w kolejnosci rosnacej i sortujesz (przyjmijmy ze "a" bedzie tą mniejsza, "b" wieksza) //zeby zadanie mialo jakis sens przyjmuje ze choc jedna liczba jest z zakresu <0,99>

3. robisz petle od a do b, kazdy obieg petli zwieksza "a" o 1.

4. sprawdzasz w kazdym obiegu petli czy "a" dzieli sie przez "2" dajac reszte "1" oraz czy "a" >9 oraz czy "a"<100
jesli wszystko prawda, wypisujesz "a"


najlatwiejszy sposob
Kamilka54
Użytkownik
Użytkownik
Posty: 115
Rejestracja: 15 lis 2007, o 14:03
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 4 razy

Turbo Pascal -zadanie

Post autor: Kamilka54 »

ok, zrobiłam, ale coś mi szwankuje.

Mógłbyś podać ogólny zarys, jak to powinno wyglądać w TP ?
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Turbo Pascal -zadanie

Post autor: spajder »

polecam tak:
tworzysz zmienną liczba typu integer:

Kod: Zaznacz cały

VAR liczba : INTEGER;
i pętlą for lecisz co drugą liczbę, poczynając od 1:

Kod: Zaznacz cały

FOR liczba := 1 TO 99 DO 
 { tutaj wypisywanie liczby }
50% kodu masz napisanego, musisz to tylko sklecić w program (tj. wstawić w odpowiednie miejsce, deklaracja przed begin reszta po i dopisać wypisywanie)

[edit]
aha, nie zobaczyłem ograniczenia. Zamiast 1 trzeba wpisać start, zamiast 99 stop, przy czym jeśli start i stop podał użytkownik z klawiatury to liczymy:

Kod: Zaznacz cały

IF (start MOD 2 = 0)
    inc(start);
IF (stop MOD 2 = 0)
    dec(stop);
te linijki oczywiście przed pętlą
kertoip_90
Użytkownik
Użytkownik
Posty: 53
Rejestracja: 6 mar 2009, o 16:03
Płeć: Mężczyzna
Pomógł: 12 razy

Turbo Pascal -zadanie

Post autor: kertoip_90 »

Kod: Zaznacz cały

program licz;
uses crt;
var i:integer;
x:integer;
y:integer;
j:byte;
begin
clrscr;
writeln('Program zlicza liczby dwucyfrowe z podanego przedziału');
writeln('Za chwilę określisz granice przedziału wprowadzając dane z klawiatury');
writeln('Wciśnij enter, aby kontynuować');
readln;
writeln;
writeln('Wpisz liczbę, będącą dolną granicą przedziału, po czym wciśnij enter');
readln(x);
writeln('Wpisz liczbę, będącą górną granicą przedziału, po czym wciśnij enter');
readln(y);
if x>y then
begin
writeln('Błąd:');
writeln('Górna granica jest mniejsza od dolnej');
writeln('Zostaną one zamienione');
i:=x;
x:=y;
y:=i;
i:=0;
write('Dolna granica przedziału wynosi teraz ');
write(x);
write(', a górna ');
write(y);
writeln('.');
writeln('Wciśnij enter, aby kontynuować.');
readln;
end;
if x<10 then x:=10;
if y<10 then y:=10;
if y>100 then y:=100;
if x>100 then x:=100;
for j:=x to y do if j mod 2=1 then i:=i+1;
if i=0 then writeln('W podanym przedziale nie ma liczb dwucyfrowych, nieparzystych')
else writeln('W podanym przedziale jest ',i,' liczb dwucyfrowych, nieparzystych');
writeln;
writeln('Wciśnij jakiś klawisz, żeby wyjść');
readln;
end.
Na potrzeby lekcji informatyki, to powinno raczej wystarczyć.
Ostatnio zmieniony 9 mar 2009, o 12:32 przez kertoip_90, łącznie zmieniany 1 raz.
Kamilka54
Użytkownik
Użytkownik
Posty: 115
Rejestracja: 15 lis 2007, o 14:03
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 4 razy

Turbo Pascal -zadanie

Post autor: Kamilka54 »

Dziękuje, teraz już widzę, gdzie zrobiłam błąd.

A jak wyglądałby następujący program:
Napisz program, ktory wyswietla wszystkie liczby z przedzialu
od 50 - 100 podzielne przez dowolna liczbe k podawaną z klawiatury.

Czy podobnie?, jak ten poprzedni?
kertoip_90
Użytkownik
Użytkownik
Posty: 53
Rejestracja: 6 mar 2009, o 16:03
Płeć: Mężczyzna
Pomógł: 12 razy

Turbo Pascal -zadanie

Post autor: kertoip_90 »

Kod: Zaznacz cały

program liczprzedzial;
uses crt;
var k:integer;
i:byte;
j:byte;
begin
clrscr;
writeln('Program wyświetla wszystkie liczby z przedziału <50;100> podzielne przez liczbę k, wprowadzaną przez użytkownika jako parametr');
writeln;
writeln('Wprowadź liczbę całkowitą k i naciśnij enter');
readln(k);
clrscr;
writeln('Liczby wypisane poniżej należą do przedziału <50;100> i są podzielne przez', k, '.');
j:=0;
for i:=50 to 100 do if i mod k=0 then
begin
writeln(i);
j:=1;
end;
if j=0 then
begin
clrscr;
writeln('W przedziale <50;100> nie ma liczb podzielnych przez ', k, '.');
end;
writeln;
writeln('Wciśnij jakiś klawisz, żeby wyjść');
readln;
end.
Kamilka54
Użytkownik
Użytkownik
Posty: 115
Rejestracja: 15 lis 2007, o 14:03
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 4 razy

Turbo Pascal -zadanie

Post autor: Kamilka54 »

Dziękuję za pomoc.
-- 9 marca 2009, 15:57 --A co do tego pierwszego programu, to jest w porządku, tylko że te liczby dwucyfrowe mają się wyświetlać na ekranie... Gdzie powinniśmy to dodać?
Bo jak sama próbuję, to coś innego przestaje działać...
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

Turbo Pascal -zadanie

Post autor: matshadow »

for j:=x to y do if j mod 2=1 then begin i:=i+1; writeln(j); end;
Awatar użytkownika
Mariusz M
Użytkownik
Użytkownik
Posty: 6909
Rejestracja: 25 wrz 2007, o 01:03
Płeć: Mężczyzna
Lokalizacja: 53°02'N 18°35'E
Podziękował: 2 razy
Pomógł: 1246 razy

Turbo Pascal -zadanie

Post autor: Mariusz M »

Wystarczy w jednej instrukcji iteracyjnej for
użyć instrukcji warunkowej if
W instrukkcji warunkowej if użyć funkcji odd
ODPOWIEDZ