Powrót do głównej strony - dydaktyka | Powrót do strony "Podstawy informatyki" |
Zadania z programowania w języku Pascal.
Znajdujące się na poniższej liscie zadania przeznaczone są do samodzielnego rozwiązania w czasie poza regularnymi zajęciami z przedmiotu podstawy informatyki.
Zadanie uważamy za rozwiązane poprawnie jesli:
program kompiluje się poprawnie do kody wykonywalnego, na dowolnym kompilatorze języka Pascal (należy unikać stosowania instrukcji, poleceń i funkcji charakterystycznych dla konkretnych implementacji),
program wykonywalny działa zgodnie z określoną w zadaniu specyfikacją, w przeciwnym przypadku, na początku pliku źródłowego (przed słowem kluczowym program), w komentarzu musi zostać zawarta dokładna informacja na temat poczynionych odstępstw od specyfikacji (np. uproszczeń, założeń).
Rozwiązanie każdego zadania musi być umieszczone w osobnym pliku o rozszerzeniu *.pas.
Nazwa pliku musi mieć postać: zadanie_nr.pas np. plik z
rozwiązaniem zadania trzeciego nazywa się zadanie_3.pas. Rozwiązane
zestaw zadań przed przesłaniem musi zostać umieszczony w katalogu: nazwisko_studenta/
np. nowak/. Tak przygotowany katalog wraz z zawartością
należy spakować zipem:
zip łr nazwisko_studenta.zip nazwisko_studenta/.
Przykład: zip łr nowak.zip nowak
Spakowane archiwum należy przesłać, w postaci załącznika do emaila, do dnia stycznia 10 stycznia 2002 na adres mailto:topa@wszib.edu.pl. W temacie listu należy umieścić "Zadania Pascal".
Literatura:
Życzymy powodzenia!
Krzysztof Boryczko, Bartosz Baliś, Paweł Topa, Dariusz Żbik
1. | Napisz program w jezyku
Pascal, który wczytuje ciąg liczb rzeczywistych zakończony 0 (zerem). Zero kończące
ciąg nie jest elementem ciagu, a
jedynie znakiem specjalnym używanym do zaznaczenia końca ciągu. Wczytanie kolejnego
elementu ma być poprzedzone znakiem zachęty, zawierającym prośbe o podanie elementu o
konkretnym numerze (np.: Podaj element nr 2 > _ ). Po wczytaniu, program ma podawać długość najdłuższego rosnącego
podciągu we wczytanym ciągu, oraz pozycje pierwszego i ostatniego elementu tego
podciągu. Program powinien prawidłowo reagować na przypadek, gdy we wczytanym ciągu
nie ma żadnego podciągu rosnącego o długości co najmniej 2.
Przykład: Podaj element 1 > 1 Podaj element 2 > 4 Podaj element 3 > 7 Podaj element 4 > 1 Podaj element 5 > 3 Podaj element 6 > 3 Podaj element 7 > 3 Podaj element 8 > 0 Długość najdłuższego rosnącego podciągu: 3 Pozycja pierwszego elementu: 1 Pozycja ostatniego elementu: 3 |
2. | Napisz program w języku Pascal, który wczytuje ciąg liczb rzeczywistych zakończony 0 (zerem). Zero konczące ciąg nie jest elementem ciągu, a jedynie znakiem specjalnym używanym do zaznaczenia końca ciągu. Wczytanie kolejnego elementu ma być poprzedzone znakiem zachęty, zawierającym prośbe o podanie elementu o konkretnym numerze (np.: Podaj element nr 2 > _ ). Po wczytaniu, program ma podawać długość najdłuższego podciągu we wczytanym ciągu składającego się z takich samych elementów oraz pozycje pierwszego i ostatniego elementu tego podci1gu, a także wartość powtarzającego się elementu.Przykład: Podaj element 1 > 1 Podaj element 2 > 1 Podaj element 3 > 7 Podaj element 4 > 1 Podaj element 5 > 19 Podaj element 6 > 19 Podaj element 7 > 19 Podaj element 8 > 0 Długość najdłuższego podciągu takich samych elementów: 3 Powtarzający się element: 19 Pozycja pierwszego elementu: 5 Pozycja ostatniego elementu: 7 |
3. | Napisz program w języku Pascal, który wczytuje ciąg liczb rzeczywistych zakonczony 0 (zerem). Zero konczące ciąg nie jest elementem ciągu, a jedynie znakiem specjalnym używanym do zaznaczenia konca ciągu. Wczytanie kolejnego elementu ma być poprzedzone znakiem zachęty, zawierającym prośbę o podanie elementu o konkretnym numerze (np.: Podaj element nr 2 > _ ). Po wczytaniu, program ma podawać sumę elementów najdłuższego malejącego podciągu we wczytanym ciągu, oraz pozycje pierwszego i ostatniego elementu tego podciągu. Program powinien prawidłowo reagować na przypadek, gdy we wczytanym ciągu nie ma żadnego malejącego podciągu o długości co najmniej 2.Przykład: Podaj element 1 > 1 Podaj element 2 > 4 Podaj element 3 > 3 Podaj element 4 > 1 Podaj element 5 > 7 Podaj element 6 > 3 Podaj element 7 > 6 Podaj element 8 > 0 Suma elementów najdłuższego malejącego podciągu: 8 Pozycja pierwszego elementu: 2 Pozycja ostatniego elementu: 4 |
4. | Napisz program w języku Pascal, który wczytuje ciąg liczb całkowitych zakończony 0 (zerem). Zero konczące ciąg nie jest elementem ciągu, a jedynie znakiem specjalnym używanym do zaznaczenia konca ciągu. Wczytanie kolejnego elementu ma bya poprzedzone znakiem zachęty, zawierającym prośbę o podanie elementu o konkretnym numerze (np.: Podaj element nr 2 > _ ). Po wczytaniu, program ma podawać wartość maksymalnego parzystego i maksymalnego nieparzystego elementu ciągu oraz pozycje, na których te elementy wystąpiły. Program powinien prawidłowo reagować na przypadki, gdy we wczytanym ciągu nie ma żadnego elementu parzystego bądź nieparzystego.Przykład: Podaj element 1 > 1 Podaj element 2 > 15 Podaj element 3 > 3 Podaj element 4 > 9 Podaj element 5 > 7 Podaj element 6 > 4 Podaj element 7 > 6 Podaj element 8 > 0 Maksymalny element parzysty: 6, pozycja: 7 Maksymalny element nieparzysty: 15, pozycja: 2 |
5. | Napisać program, który wczytuje ciąg liczb całkowitych zakończony
zerem i wypisuje ilość liczb parzystych inieparzystych wtym ciągu. Wczytywane
liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać okażdą liczbę
wraz z podaniem jej kolejnego numeru. Przykład: Podaj ciag liczb: Liczba 1 --> 2 Liczba 2 --> 3 Liczba 3 --> 2 Liczba 4 --> 7 Liczba 5 --> 0 Ilosc liczb parzystych: 2 Ilosc liczb nieparzystych: 2 Czy powtorzyc (t/n)? n |
6. | Napisać program, który wczytuje ciąg liczb rzeczywistych zakończony
zerem, a następnie wypisuje dwie największe liczby w tym ciągu i podaje pozycje na których
wystąpiły. Następnie program powinien zapytać, czy powtórzyć cykl i w razie
odpowiedzi twierdzącej ('t') powtarzać cały proces, zaś w przypadku odpowiedzi
negatywnej ('n') konczyć działanie. Wczytywane liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać okażdą liczbę wraz z podaniem jej kolejnego numeru. Przykład: Podaj ciag liczb: |
7. | Napisać program, który wczytuje ciąg liczb całkowitych zakończony
zerem, a następnie wypisuje sumę średnią arytmetyczną parzystych wyrazów tego ciągu.
Dalej program powinien zapytać, czy powtórzyć cykl i w razie odpowiedzi twierdzącej
('t') powtarzać cały proces, zaś w przypadku odpowiedzi negatywnej ('n') konczyć
działanie. Wczytywane liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać o każdą liczbę wraz z podaniem jej kolejnego numeru. Przykład: Podaj ciag liczb: |
8. | Napisać program, który wczytuje ciąg liczb całkowitych zakończony
zerem, a następnie wypisuje sumę parzystych oraz sumę nieparzystych wyrazów tego ciągu.
Następnie program powinien zapytać, czy powtórzyc cykl i w razie odpowiedzi twierdzącej
('t') powtarzać cały proces, zaś w przypadku odpowiedzi negatywnej ('n') kończyć działanie.
Wczytywane liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać o każdą liczbę wraz z podaniem jej kolejnego numeru. W wypadku, gdy ciąg nie zawiera wyrazów parzystych lub nieparzystych, program powinien wyświetlać informację o braku takich elementów. Przykład: Podaj ciag liczb: |
9. | Napisać program, który wczytuje ciąg liczb całkowitych zakończony
zerem, a następnie wypisuje ilość i średnią arytmetyczną parzystych wyrazów tego ciągu.
Jeśli ciąg nie zawiera parzystych wyrazów, to program powinien wypisywać informację
"Brak parzystych wyrazów". Następnie program powinien zapytać, czy powtórzyc
cykl i w razie odpowiedzi twierdzącej ('t') powtarzać cały proces, zaś w przypadku odpowiedzi negatywnej ('n') kończyć działanie. Wczytywane liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać o każdą liczbę wraz z podaniem jej kolejnego numeru. Przykład: Podaj ciag liczb: |
10. | Napisać program, który wczytuje ciąg liczb całkowitych zakończony
zerem, a następnie wypisuje sumę parzystych oraz sumę nieparzystych wyrazów tego ciągu.
Następnie program powinien zapytać, czy powtórzyc cykl i w razie odpowiedzi twierdzącej
('t') powtarzać cały proces, zaś w przypadku odpowiedzi negatywnej ('n') konczyć działanie.
Wczytywane liczby mogł być ujemne. Przy wprowadzaniu danych program powinien pytać o każdą liczbę wraz z podaniem jej kolejnego numeru. W wypadku, gdy ciąg nie zawiera wyrazów parzystych lub nieparzystych, program powinien wyświetlać informację o braku takich elementów. Przykład: Podaj ciag liczb: Podaj ciag liczb: |
11. |
Dana jest nastepująca definicja stałych i typów:
const Napisz program w jezyku Pascal, który do zdefiniowanej zmiennej typu tablica wczytuje ciąg liczb całkowitych zakończony 0 (zerem) jednak nie dłuższy niż wartość stałej rozmiar elementów. W dalszej kolejności we wczytanej tablicy program znajduje liczby parzyste i kopiuje je do drugiej zdefiniowanej w programie tablicy. W programie powinny znależa się trzy podprogramy (procedury lub funkcje) służące do 1) wczytania liczb do pierwszej tablicy, 2) wyszukiwania w pierwszej tablicy liczb parzystych oraz kopiowania ich do drugiej tablicy (podprogram powinien zwracać informacje o ilości liczb w drugiej tablicy), 3) wypisywania elementów tablicy. Przykład: Tablica po wczytaniu: Tablica liczb parzystych: Pamietaj o wcieciach i komentarzach w kodzie programu. |
12. | Dana jest nastepująca definicja stałych i
typów:
const Napisz program w jezyku Pascal, który do zdefiniowanej zmiennej typu tablica wczytuje ciag liczb całkowitych zakonczony 0 (zerem) jednak nie dłuższy niż wartość stałej rozmiar elementów. W dalszej kolejności we wczytanej tablicy program zmienia miejscami element największy oraz najmniejszy. Program wypisuje elementy tablicy wczytanej i zmodyfikowanej. W programie powinny znaleźć się cztery podprogramy (procedury lub funkcje) służące do 1) wczytania liczb do tablicy, 2 ) wyszukiwania pozycji elementów najwiekszego i najmniejszego, 3 ) zamiany elementów największego i najmniejszego w tablicy, 4) wypisywania elementów tablicy. Przykład: Tablica po wczytaniu: Tablica po modyfikacji: |
13. | Dana jest następująca definicja stałych i
typów:
const Napisz program w jezyku Pascal, który do zdefiniowanej zmiennej typu tablica wczytuje ciąg liczb całkowitych zakończony 0 (zerem) jednak nie dłuższy niż wartość stałej rozmiar elementów. Dodatkowo program wczytuje liczbę-wzorzec typu real. Program w tych wszystkich miejscach tablicy, gdzie znajdują się liczby o wartości większej od wartości podanej liczby-wzorca wpisuje liczbę 0 (zero). Program wypisuje liczby po wczytaniu ich do tablicy, wartość wzorca oraz elementy tablicy po modyfikacji. W programie powinny znaleźć się trzy podprogramy (procedury lub funkcje) służące do 1) wczytania liczb do tablicy oraz wczytania wzorca, 2) zerowania odpowiednich elementów tablicy, 3) wypisywania elementów tablicy. Przykład: Tablica po wczytaniu: Wzorzec: 7, Tablica po modyfikacji: |
14. | Dana jest nastepująca definicja stałych i
typów:
const Napisz program w jezyku Pascal, który
do zdefiniowanej zmiennej typu Przykład: Tablica po wczytaniu: Tablica po modyfikacji: |
15. | Dana jest nastepująca definicja stałych i
typów:
const Napisz program w jezyku Pascal, który do
zdefiniowanej zmiennej typu Przykład: Tablica po wczytaniu: Średnia arytmetyczna: 20.20, Tablica po modyfikacji: |
16. | Dana jest nastepująca definicja stałych i
typów:
const Napisz program w jezyku Pascal, który do
zdefiniowanej zmiennej typu Przykład: Dla ciągu: zaś dla ciągu: -5 7 9 12 56 78 mediana wynosi: (9+12)/2 = 10.5. |
17. | Z klawiatury wprowadzany jest ciąg liczb całkowitych zakończonych
zerem. Zero nie należy do ciągu. Wczytywany ciąg umieszczany jest w tablicy
jednowymiarowej. Program najpierw sortuje wczytany ciąg w porządku malejącym. Z
klawiatury wczytywana jest następnie liczbę całkowitą wzorzec, dla której
program stara się znaleźć jej pozycje jej pierwszego wystąpienia w ciągu. Jeśli
podany wzorzec nie występuje w ciągu określana jest pozycja liczby o wartości najbliższej
do podanego wzorca. Wczytany i posortowany ciąg oraz wyniki poszukiwania wzorca mają być
wypisane na ekran. W programie należy zdefiniować funkcje i procedury:
Przykład: ciąg: 3, 5, 7, 1, 8, 34, 8, 3, 21, 16 |
18. | Z klawiatury wprowadzany jest ciąg liczb rzeczywistych zakończonych
zerem. Zero nie należy do ciągu; jak zwykle pełni rolę markera końca. Wczytywany ciąg umieszczany jest w tablicy jednowymiarowej. Najpierw program sortuje ciąg liczb. Następnie z klawiatury wczytywana jest liczbę całkowita - wzorzec - dla której znajdowany jest w ciągu podzbiór liczb większych od niej lub równych. Znaleziony zbiór liczb w postaci posortowanej zapisywany jest do drugiej tablicy. Funkcja zwraca długość znalezionego ciągu. Obydwa ciągi muszą być wydrukowane na ekranie.W programie należy zdefiniować funkcje i procedury:
Przykład: ciąg: 3.6, 5.96, 7.1, 1.77, 8, 34.7, 8.34, 3.5, 21, 16.6
|
19. | Z klawiatury wprowadzany jest ciąg liczb całkowitych zakończonych
zerem. Zero nie należy do ciągu; jak zwykle pełni rolę markera końca. Wczytywany ciąg umieszczany jest w tablicy jednowymiarowej. Program z wczytanego ciągu wybiera liczby parzyste i zapisuje je w drugiej tablicy. Następnie obie tablice są sortowane w porządku rosnaącym. W programie należy zdefiniować i użyć następujących funkcji i procedur:
Przykład: ciąg: 3, 5, 7, 1, 8, 34, 8, 3, 21, 16 |
20. | Pewna funkcja matematyczna f, określona na zbiorze liczb całkowitych,
dana jest w postaci tabeli wartości tej funkcji dla różnych x np: x : 4, 6, 12, 8, 5, 9, 8, 2, Wartości x oraz odpowiadające im wartości f(x) wprowadzamy z
klawiatury. Wprowadzanie kończy się z chwila gdy jako x podamy zero. Powtórzenie
wartości x podczas wprowadzania należy zasygnalizować jako błąd i powtórzyć
wprowadzanie liczby.
Przykład: Podaj x: 3 |
21. | Z klawiatury wprowadzane są dwa ciągi liczb całkowitych zakończone
zerem. Zero nie należy do ciągu; jak zwykle pełni rolę markera końca. Wczytywane ciąg umieszczane są w tablicach jednowymiarowych. Wczytywane wartości nie mogą się powtarzać w obrębie tego samego ciągu! Po wprowadzeniu liczby już występującej w ciągu, program ma zasygnalizować ten fakt komunikatem i powtórzyć wprowadzanie liczby. Tablice są reprezentacją zbiorów. Różnicą zbiorów Z_1 i Z_2 nazywamy taki zbiór Z_3 = Z_1 - Z_2, który zawiera wszystkie te elementy zbioru Z_1, które nie występują w Z_2. Oblicz obydwie różnice wczytanych zbiorów tzn . Z_1 - Z_2 i Z_2 - Z_1. Wczytane zbiory oraz ich różnice mają być wydrukowane na ekran. W programie należy zdefiniować i użyć następujące funkcje i procedury:
Przykład: ciąg A: 3, 5, 7, 1, 8, 34, 21, 16 |
22. | Z klawiatury wprowadzany jest ciąg liczb całkowitych zakończony zerem.
Zero traktowane jest jako znacznik końca ciągu; nie jest elementem ciągu. Wczytany ciąg ma być przechowywany w postaci tablicy rekordów. Rekord składa się z dwóch pól:
Jeśli wczytywana liczba po raz pierwszy pojawia się w ciagu, zajmowany jest dla niej
nowy rekord w którym wpisywana jest jej
Wczytany zbiór oraz wynik poszukiwań mają być wypisane na ekranie. W programie należy
zdefiniować i użyć funkcje
Przykład: Podaj liczbę: 3 |
23. | Z klawiatury wprowadzany jest ciąg liczb rzeczywistych zakończony
zerem. Zero nie należy do ciągu; pełni rolę markera końca. Wczytywany ciąg umieszczany jest w tablicy jednowymiarowej. Program wstępnie sortuje wczytany ciąg w porządku rosnącym. Następnie oblicza różnice kolejno po sobie następujących elementów ciągu (następny minus poprzedni). Obliczone różnice umieszcza w drugiej tablicy. Wczytany ciąg po sortowaniu oraz wynikowy ciąg różnic jest drukowany na ekranie. W programie należy zdefiniować i użyć następujących funkcji i procedur:
Przykład: Ciag: 4.5, 5.0, 7.5, 3.0, -4.0, 6.1 |
24. | Z klawiatury wprowadzany jest ciąg liczb całkowitych zakończony zerem.
Zero nie należy do ciągu; pełni rolę markera końca. Wczytywany ciąg umieszczany jest w tablicy jednowymiarowej. Z klawiatury wczytywana jest liczbę całkowitą - wzorzec. Następnie program rozdziela wczytany ciąg do dwóch tablic, w jednej z tablic umieszcza elementy które są podzielne przez wzorzec, w drugiej pozostałe. Rodzielone tablice są następnie sortowane i wypisywane na ekran. W programie należy zdefiniować i użyć następujących funkcji i procedur:
Przykład: Ciag: 16, 4, 5, 7, 3, 6, 15, 9 |