Korzystając z rozdziału wyrażenia wykonaj program, który obliczy

Transkrypt

Korzystając z rozdziału wyrażenia wykonaj program, który obliczy
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
Podczas zajęc z Pascala będziemy korzystać z dostępnej online książki wydawnictwa Helion.
Książka jest dostępna pod tym adresem:
http://turbopascal.helion.pl/
lokalnie tutaj
Będziemy korzystać ze środowiska programistycznego Free Pascal’a w wersji 2.2.4 lub
nowszej.
Problemy:
Wersja 2.4.2 problem z kompilatorem. Po próbie kompilacji programu zawierającego błąd
niemożliwe jest skompilowanie programu nawet bezbłędnego.
Wersja 2.4.4. Problem z oknem Compiler Messages. W oknie tym powinny pojawić się
komunikaty błędów pomagające poprawić błędny kod. Okno w niektórych wersjach, w tym w
wersji 2.4.4, nie pojawia się na ekranie. Rozwiązanie polega na naciśnięciu F12 (wywołanie
okna Compiler Messages) a następnie F5. Potem należy ustawić wielkość okna CM tak, aby
nie zasłaniało okna edytora. Przy tej wersji pojawia się często błąd RTE, który kończy się
zamknięciem całego IDE.
Optymalna wersja na 2011 to niestety 2.2.4. Najmniej problemów z działaniem.
Rok 2012 – aktualnie testujemy wersję 2.6
Spis
1
Do rozdziału Ulepszamy Dalej ........................................................................................... 2
2
Do rozdziału Wyrażenia...................................................................................................... 2
3
Do rozdziału Instrukcja warunkowa ................................................................................... 4
4
Do rozdziału Rozwiązujemy dowolne równanie ................................................................ 5
4.1 Pętla for........................................................................................................................ 5
4.2 Pętla repeat until .......................................................................................................... 5
4.3 Pętla while ................................................................................................................... 5
4.4 Zadania ........................................................................................................................ 7
5 Ćwiczenie utrwalające do tematów instrukcja warunkowa i pętle. .................................... 9
6
Sprawdzian semestralny...................................................................................................... 9
6.1 Praktyczny ................................................................................................................... 9
Sprawdzian praktyczny poprawka poprawkowego – rozwiązanie zadania X ......................... 10
7
6.2 Semestralny sprawdzian teoretyczny......................................................................... 10
Do rozdziału Funkcje i procedury..................................................................................... 11
8
Do rozdziału Typy strukturalne, czyli jak przechować więcej danych i dalszych. .......... 12
9
Sprawdzian końcowy teoretyczny .................................................................................... 17
10
Sprawdzian końcowy praktyczny.................................................................................. 17
11
Sprawdzian z programowania strukturalnego i budowy programu............................... 17
12
Klasyczne algorytmy iteracyjne. ................................................................................... 17
12.1
12.2
12.3
Wyszukiwanie najmniejszej (największej). ........................................................... 17
Wyszukiwanie liczby w tablicy ............................................................................. 17
Test – liczba pierwsza czy złożona. ....................................................................... 17
strona 1
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
1 Do rozdziału Ulepszamy Dalej
Wyświetlanie liczb dla porównania ich wielkości. Przecinek w tej samej kolumnie.
Wyświetlanie liczb
Zmodyfikuj program z rozdziału "Ulepszamy Dalej" tak aby liczył pole powierzchni trójkąta. Wzór na
pole trójkąta to P=1/2*a*h, gdzie a-długość podstawy, h - wysokość.
Oryginalny pole kola
Rozwiązanie pole trojkata
2 Do rozdziału Wyrażenia
Zadanie 1
Wykonaj program z wykorzystaniem operatorów dzielenia całkowitego i reszty z dzielenia.
Program ma pobrać dwie liczby i wyświetlić wynik ich dzielenia całkowitego oraz reszty z
dzielenia.
Rozwiązanie
Zadanie 2
Korzystając z rozdziału wyrażenia wykonaj program, który obliczy następujący wzór w oparciu o
podane przez Ciebie wartości zmiennych.
Dla kontroli podaję wartości zmiennych i wynik jaki powinien zostać uzyskany po wpisaniu tych
wartości zmiennych (patrz załącznik).
Podpowiedź: W bibliotece standardowej free pascala nie zaimplementowano funkcji potęgującej. Aby
obliczyć potęgę liczby należy skorzystać z własności:
xy=ey*ln(x)
Czyli
X^Y -> Exp(y*Ln(x))
Jeśli przechowujemy wykładnik jako zmienną wykl a podstawę podst to zmienną potega
możemy obliczyć następująco: Potega := Exp(wykl * Ln(podst))
Stąd: http://sun1000.pwr.wroc.pl/~wach/pas_ref/pas_lib.htm
Lokalnie stąd: link
strona 2
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
e
b d
*f 
c
g
a
a
3,0
b
c
17,9 18,1
d
24,5
e
3,0
f
g
3,0
12,0
Wynik = 18,520
Rozwiązanie
strona 3
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
3 Do rozdziału Instrukcja warunkowa
Zadanie 1
Pobierz od użytkownika dwie liczby. Sprawdź, która jest większa i wypisz na ekranie
odpowiedni komunikat.
Zadanie 2
Oblicz wartość wzoru z poprzedniego rozdziału (wzór 1) dla dowolnych wartości zmiennych i
dla tych samych zmiennych wylicz wartość po zastosowaniu wzoru 2. Porównaj te wartości i
podaj na ekranie, który wzór zwraca większą wartość wyniku.
Wzór 1
Wzór 2
e
b d
*f 
c
g
a
e
f
a
b *g
c
d
Kontrola prawidłowości wzoru 2. Dla zmiennych:
a
3,0
b
17,9
c
18,1
d
e
f
24,5
3,0
3,0
g
12,0
Wynik = 10,885
Rozwiązanie obliczeniowe
Rozwiązanie – listing programu
strona 4
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
4 Do rozdziału Rozwiązujemy dowolne równanie
W rozdziale tym omówione zostało stosowanie pętli programowych.
4.1 Pętla for
Wyświetlamy kolejne dziesięć wielokrotności liczby:
program petla_for;
uses crt;
var
liczba: double;
i : integer;
begin
clrscr;
write ('podaj liczbe: ');
readln(liczba);
for i:=1 to 10 do
begin
writeln(liczba*i:6:0);
end;
for i:=10 downto 1 do
begin
writeln(liczba*i:6:0);
end;
readln();
end.
Pętla for ten przykład.
4.2 Pętla repeat until
Wyświetlamy kolejne liczby całkowite od zera do podanej przez użytkownika:
program petla_repeat_until;
uses crt;
var { deklaracja zmiennych }
zakres: integer;
liczba: integer;
begin
clrscr;
write ('Podaj maksimum zakresu od 0 do: ');
readln(zakres);
writeln;
repeat
writeln(liczba);
liczba:=liczba+1;
until liczba>zakres;
writeln('nacisnij ENTER aby zakończyc');
readln;
end.
Pętla repeat until ten przykład.
Przykład praktycznego zastosowania pętli repeat until w programie.
4.3 Pętla while
Program petla_while;
uses crt;
strona 5
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
var
x : integer;
licznik: integer;
begin
clrscr;
writeln('Ilustracja dzialania petli while. Wpisanie 0 (zero) kończy pętlę');
write('Podaj zmienna x:');
readln(x);
while x<>0 do
begin
writeln('Wykonuje iteracje tak dlugo jak x bedzie rozne od 0, teraz x= ',x);
writeln('wpisz cyfre dla kolejnego wykonania petli');
writeln('wartosc 0 (zero) zakonczy dzialanie petli');
licznik:=licznik+1;
writeln('ilosc przebiegow petli = ',licznik);
write('x = ');
readln(x);
end;
writeln('Koncze dzialanie nacisnij ENTER');
readln;
end.
Powyższy przykład w oddzielnym listingu.
Zwróć uwagę na to, że pętla nie wykona się nawet raz jeśli warunek przy while zwraca fałsz.
Pętla repeat until wykona się przynajmniej raz ponieważ warunek sprawdzany jest dopiero po
pierwszym przejściu pętli. Przykład poniżej, realizujący to samo zadanie:
Program petla_repeat;
uses crt;
var
x :integer;
licznik: integer;
begin
clrscr;
writeln('Ilustracja dzialania petli repeat. Wpisanie 0 (zero) kończy pętlę');
write('Podaj zmienna x:');
readln(x);
repeat
writeln('Wykonuje iteracje tak dlugo jak x bedzie rozne od 0, teraz x= ',x);
writeln('wpisz cyfre dla kolejnego wykonania petli');
writeln('wartosc 0 (zero) zakonczy dzialanie petli');
licznik:=licznik+1;
writeln('ilosc przebiegow petli = ',licznik);
write('x= ');
readln(x);
until x=0;
writeln('Koncze dzialanie nacisnij ENTER');
readln;
end.
strona 6
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
4.4 Zadania
Zadanie 1
1. Pobierz od użytkownika liczbę.
a. Wyświetl wszystkie liczby parzyste od 2 do liczby podanej przez użytkownika.
b. Zapytaj o maksimum i liczbę. Wyświetl wszystkie wielokrotności liczby,
które mieszczą się w przedziale od zera do maksimum.
c. Zapytaj o minimum, maksimum i liczbę. Wyświetl wszystkie wielokrotności
liczby, które mieszczą się w przedziale <minimum, maksimum>.
Rozwiązanie 1c pętlą repeat until.
Rozwiązanie 1c pętlą for
Żeby program nie robił zbędnych przebiegów można wyliczyć start pętli dla liczby zbliżonej
do minimum.
Rozwiązanie
Bazując na powyższych rozwiązaniach wykonaj programy:
2. Zsumuj wielokrotności liczby w zakresie podanym przez użytkownika.
3. Policz ilość wielokrotności liczby w zakresie podanym przez użytkownika.
Niech programy te będą tak zrobione, aby po każdej operacji powtarzały pytanie o to czy
użytkownik chce powtórzyć wyświetlanie wielokrotności i umożliwiały wyjście z programu
po naciśnięciu n (nie). Rozwiązanie 2 i 3 razem
Zadanie 2
Przyjmując wartości liczbowe z poniższej tabeli sprawdź, który wzór z zadania z
poprzedniego rozdziału daje większy wynik:
a
3,0
B
c
17,9 18,1
d
24,5
e
3,0
f
3,0
g
1,0
Następnie sprawdź czy istnieje taka wartość „g” dla tych wzorów, dla której zmienią się
wyniki w ten sposób, że wzór, który dawał wynik większy będzie teraz dawał wynik
mniejszy.
Podpowiedź: sprawdź kolejne wartości całkowite
Zadanie 3 – kontynuacja zadania pierwszego
Jeśli istnieje taka wartość „g”, która daje większy wynik dla wzoru 2 to znajdź wartość „g”
dla której wyniki z obu wzorów są równe, z dokładnością do 1. Wyświetl ją na ekranie z
dokładnością do 0,01.
Rozwiązanie obliczeniowe (Excel)
Rozwiązanie – listing programu
Zadanie 4 – kontynuacja
Znajdź wartość g z dokładnością do 0,01. Wyświetl wyniki z obu wzorów na ekranie aby
sprawdzić na ile są sobie równe. Jak wyglądałby program, który od razu szukałby takiej
wartości „g”, przy której wyniki obu wzorów byłyby sobie równe z dokładnością do jednej
strona 7
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
setnej. Co można powiedzieć o złożoności obliczeniowej i złożoności kodu programu dla obu
rozwiązań?
Rozwiązanie pierwsze – zgodne z treścią zadań tj. najpierw szukamy wartości g z
dokładnością do jedności a potem dopiero począwszy od znalezionej wartości szukamy z
wartości g z dokładnością do jednej setnej.
Rozwiązanie drugie – Proponowane w zadaniu 3. Szukamy od razu wartości g, dla której
wyniki wzorów byłyby równe z dokładnością do 0,01.
(Metoda kolejnych przybliżeń)
Rozwiązanie – listing - szukanie_rownosci.txt
Zadanie 5
Napisz program obliczający stosunek wagi do wzrostu użytkownika i oceniający na tej
podstawie jego proporcje. Niech program:
1) zapyta o wzrost w cm i wagę w kg. Program ma odrzucić dane, nieprawdopodobne
lub takie, dla których obliczenia BMI nie mają sensu (np. dla dzieci). Zatem
a. Wzrost powinien mieścić się w przedziale od 120 do 300cm
b. Waga powinna mieścić się w przedziale od 30 do 400kg.
2) wyliczy bmi wg wzoru bmi=(wzrost-100)/waga
3) Poda użytkownikowi jego współczynnik bmi
4) Poda użytkownikowi jedną z opcji:
a. Masz idealną wagę
b. Masz nadwagę
c. Masz niedowagę
5) Zasugeruje ile użytkownik powinien przytyć/schudnąć aby otrzymać idealną wagę dla
swojego wzrostu.
Rozwiązanie
strona 8
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
5 Ćwiczenie utrwalające
warunkowa i pętle.
do
tematów
instrukcja
Napisz program, który pokaże menu i pozwoli na wybór, co chcemy liczyć.
Daj możliwość następujących obliczeń:
1) pole trójkąta
2) pole prostokąta
3) pole koła.
Niech każde z pól będzie liczone nie dla jednego obiektu tylko dla całego przedziału. Zapytaj
użytkownika o wartość maksymalną przedziału (Wmax).
Dla trójkąta niech długość podstawy pozostaje stała (pobrana od użytkownika). Niech
zmienia się wysokość w przedziale od 1 do Wmax.
Dla prostokąta jeden z boków niech poda użytkownik a drugi zmieniaj od 1 do Wmax.
We wzorze na pole koła mamy tylko jedną zmienną „r”. Przyjmij od użytkownika wartości
Rmin i Rmax i oblicz pola kół w tym przedziale.
Skorzystaj z
 typy zmiennych - Rozdział Ulepszamy dalej > tablica 1
 funkcja case lub if - Rozdział instrukcja warunkowa
 pętle – Rozdział Rozwiązujemy dowolne równanie
Jak zrobić proste menu
Rozwiązanie
6 Sprawdzian semestralny
6.1 Praktyczny
Semestralny sprawdzian praktyczny – 7 zadań
Rozwiązanie zadania nr 1 ze sprawdzianu praktycznego
Rozwiązanie zadania 1 z wykorzystaniem procedur
Rozwiązanie zadania nr 2 ze sprawdzianu praktycznego
Rozwiązanie zadania nr 3 ze sprawdzianu praktycznego
Rozwiązanie zadania nr 4 ze sprawdzianu praktycznego
Rozwiązanie zadania nr 5 ze sprawdzianu praktycznego
Rozwiązanie zadania nr 6 ze sprawdzianu praktycznego
Rozwiązanie zadania nr 7 ze sprawdzianu praktycznego (funkcja mod opisana w rozdziale
wyrażenia – tablica 2)
strona 9
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
Sprawdzian praktyczny poprawkowy
Sprawdzian praktyczny poprawka poprawkowego – rozwiązanie zadania X
6.2 Semestralny sprawdzian teoretyczny
Semestralny test z teorii
Testy w formacie PDF do opublikowania np. na stronie WWW
Test grupa 1- link
Test grupa 2 - link
Karty odpowiedzi do druku - link
Rozwiązania do testu teoretycznego – listingi niektórych zadań
Rozwiązania – szablon poprawnych odpowiedzi
Sprawdzian teoretyczny poprawkowy
Sprawdzian teoretyczny poprawka 2 – UWAGA! do poprawienia
Szablon odpowiedzi
strona 10
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
7 Do rozdziału Funkcje i procedury
Przykłady funkcji i procedur.
Prosta procedura – 1.28
Przekazanie parametrów do procedury – 1.29
Funkcje (funkcja zwraca wartość) – 1.30
Zmienne globalne i lokalne – 1.31
Przekazywanie parametrów do funkcji i procedur (przekazanie przez wartość i przez
zmienną) – 1.32
Zadanie 1
Przerób zadanie z rozdziału Ćwiczenie utrwalające do tematów instrukcja warunkowa i
pętle, tak aby obliczenia poszczególnych pól były funkcjami albo procedurami. Takie
podejście znacznie zwiększy przejrzystość tego programu i pozwoli na jego modyfikowanie.
Dodaj możliwość obliczania objętości kuli dla promienia zmieniającego się od rmin do rmax.
Rozwiązanie
Zadanie 2
Bazując na rozdziałach:
o Funkcje i procedury
o Jak program porozumiewa się z funkcją?
Napisz program, który "zapyta" o znak oraz ilość powtórzeń i wyświetli kilka linijek
np. 5, w których wyświetli wpisany znak określoną ilość razy.
Rozwiązanie
strona 11
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
8 Do rozdziału Typy strukturalne, czyli jak przechować
więcej danych i dalszych.
Zadanie 1
W oparciu o rozdział Typy strukturalne, czyli jak przechować więcej danych napisz
program, który stworzy tablicę a następnie zapyta użytkownika o kolejne jej elementy.
Następnie wyświetli wszystkie elementy tablicy rosnąco a później malejąco.
Rozwiązanie
Zadanie 2
Rozwiń zadanie 1. Po wprowadzeniu elementów niech program zapyta użytkownika o to
co chce zrobić. Niech:
1. wyświetlanie rosnące
2. wyświetlanie malejące
3. wprowadzanie elementów
będą procedurami. Następnie, w zależności od wyboru użytkownika program ma pobrać
elementy lub wyświetlić elementy tablicy w porządku rosnącym lub malejącym. Typ
elementów może być dowolny. Ilość od pięciu wzwyż.
Rozwiązanie
Zadanie 3
Rozwiń program z zadania nr 2. Używając tablic wykonaj program, który zapamięta
kilka produktów i ich ilości magazynowe. Zarówno nazwy towarów jak i ich ilości mają być
na początku pobrane od użytkownika. Następnie wykonaj prosty interfejs użytkownika
(menu), w którym będzie można zmieniać ilości towarów. W menu powinny się wyświetlać:

numer kolejny towaru

nazwa towaru

ilość magazynowa towaru,
strona 12
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
po wyświetleniu powinno pojawić się pytanie, który towar zmienić po czym powinna być
możliwość wpisania nowej ilości towaru. Po wpisaniu program powinien wyświetlić listę
wszystkich towarów, na której będzie można sprawdzić czy dokonano zmiany.
Podpowiedź: można użyć dwóch tablic jednowymiarowych, a towary w obu tablicach
będą identyfikowane przez wspólny numer kolejny.
Pytanie. Czy można użyć struktury rekordowej do realizacji tego zadania? Jeśli tak to czy
takie rozwiązanie będzie prostsze?
Uruchom program (podpowiedź jak powinien działać).
Rozwiązanie dłuższe ale łatwiejsze do analizy.
Rozwiązanie krótsze z maksymalnym wykorzystaniem procedur
Zadanie 4
Do wykonania tego zadania postaraj się wykorzystać zmienną typu rekordowego opisaną
dziale „Typy strukturalne, czyli jak przechować więcej danych”.
To zadanie jest rozwinięciem zadania poprzedniego. Dodaj możliwość przechowywania
ceny produktu. Obecnie w tablicy powinny się znaleźć informacje o nazwie produktu, ilości
magazynowej i cenie 1 sztuki. Jeśli zdejmujemy towar z magazynu (sprzedaż) to powinna nie
tylko zmienić się ilość magazynowa produktów, ale także obliczyć cena sprzedanych
produktów.
Dodatkowym ułatwieniem w programie powinna być możliwość wyboru polecenia z
menu bez potwierdzania klawiszem ENTER. Tzn. wciśnięcie np. klawisza „1” powinno od
razu uruchomić opcję numer 1 (np. wprowadzanie towarów).
Wyjaśnienie do tego problemu znajdziesz w dziale „Do dzieła”.
Pomoc 1 do tego punktu – przyjęcie klawisza.
Pomoc 2 do tego punktu – sprawdzenie pozycji w menu
Następna ważna funkcja powinna pozwalać na zapis listy towarów w postaci pliku na
dysku. Dzięki temu program będzie można wyłączyć i uruchomić bez utraty danych o
produktach.
Wyjaśnienie do tego zagadnienia znajdziesz w dziale „Pliki, czyli jak uchronić dane
przed zgubą”.
Pomoc do tego punktu – poszczególne etapy tworzenia pliku i zapisywania do niego
danych. (Program zapisz).
strona 13
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
Każda operacja zmiany stanu towarów powinna być poprzedzona wyświetleniem listy
towarów wraz ze stanem magazynowym i jego wartością.
Przykład:
Lp
Nazwa
Ilość sztuk
wartość
Cena 1 szt.
1
Procesor
5
500
100
2
Płyta główna
2
400
200
3
Mysz
45
900
20
4
Klawiatura
10
20
200
5
Dysk twardy
150
10
1500
Dla porządku poniżej podaję funkcje, jakie powinien posiadać program wraz z opisem:
1) dodanie produktu do bazy – dodajemy jeden produkt do bazy, który będzie się
dopisywał na końcu. wprowadzanie
2) wyświetlenie produktów z bazy – powinno wyświetlić na ekranie listę wszystkich
produktów. wyświetl
3) zmiana stanu towarów – możliwość zmiany ilości towarów (wpisania nowej) po
podaniu numeru towaru do zmiany. Powinno zostać poprzedzone wyświetleniem
stanu towarów, czyli listy wszystkich towarów w bazie. zmiana
4) usuniecie towaru (rekordu) z bazy – usunięcie wskazanego rekordu z bazy danych.
usunrekord
5) odczyt bazy z dysku – możliwość odczytania zapisanej na dysku bazy powinna być
zarówno z menu jak i automatycznie podczas uruchamiania programu. Uwaga! Jeśli
uruchamiamy program a na dysku nie ma pliku bazy to program powinien ją stworzyć.
odczyt
6) zapis bazy na dysku – możliwość zapisania bazy do zdefiniowanego pliku na dysku
twardym. Zapis powinien się dokonywać również automatycznie przy zamykaniu
programu. zapis
7) wyjście z programu – opuszczenie programu, poprzedzone zapisaniem bieżącej bazy
na dysku. wyjscie
Szkielet programu
Przy łączeniu programu należy pamiętać o kolejności procedur. Jeśli wywołujemy jakąś
procedurę to musi ona już istnieć w programie.
Magazyn 8 – wersja końcowa dla podstawowego kursu Pascala.
strona 14
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
Zadanie 5
Wykonaj program, który zapisze do pliku liczby parzyste z przedziału od 2 do 1000.
Rozwiązanie
Następnie rozbuduj program, tak aby zapisywał kolejne liczby parzyste do plików o kolejnych
rosnących numerach od 1 do 100. Wynikiem działania programu powinno być umieszczenie
w docelowym katalogu stu plików o nazwach będących kolejnymi liczbami całkowitymi i
zawierającymi kolejną liczbę parzystą w ten sposób, że plik o nazwie 1 będzie zawierał liczbę
2, plik 10 liczbę 20, plik 33 liczbę 66 itd.
Rozwiązanie
Zmodyfikuj program tak, aby:
1.
Zapisał 1000 plików zamiast 100.
2.
Wpisywał do plików wielokrotności liczby 3 a nie 2.
3.
Nazwał pliki zamiast 1.txt, 2.txt itd. Zadanie1.txt, zadanie2.txt
4.
Wpisał w treści pliku nie tylko liczbę, ale i wyrażenie „wynik =”, czyli w pliku
zadanie1.txt powinien być wpis „wynik = 3”
5.
Program ma zapisać 10 plików a w każdym wpisać dziesięć wielokrotności liczby
wg klucza: w pliku zadanie2.txt powinny być wpisane wielokrotności liczby 2.
Rozwiązanie
strona 15
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
Zadanie 6 – zaliczeniowe. Wykonanie i obrona tego zadania zwalnia z końcowego
sprawdzianu praktycznego z Pascala.
Bazując na przykładzie z książki helionu (chodzi o program obsługi biblioteki) napisz
program do obsługi magazynowej w sklepie komputerowym. Przykład znajduje się w
rozdziałach:
 Struktura programu,
 Typy i stałe,
 Do dzieła!,
 Pliki, czyli jak uchronić dane przed zgubą,
 Łańcuchy,
 Więcej pamięci!,
 Pożyteczne drobiazgi, czyli moduły biblioteczne
W bazie powinieneś przechowywać następujące dane:
 nazwa podzespołu
 typ
 cena
 ilość
Program powinien umożliwiać:
 dopisanie podzespołu do bazy
 usunięcie podzespołu z bazy
 zapisanie bazy podzespołów na dysku
 odczyt bazy podzespołów z dysku
 wyświetlenie listy wszystkich podzespołów na ekranie
 zmianę ilości podzespołów w bazie (tu program powinien obliczyć cenę sprzedaży
podzespołów w oparciu o cenę).
Dodatkowo dla uczniów zaawansowanych w pascalu:
 Podliczenie wartości podzespołów na stanie magazynowym.
 Wyświetlenie podzespołów określonego typu
 Wybór podzespołu do wyświetlenia wg dowolnego kryterium (nazwa, typ, cena).
Wszystkie możliwości programu powinny zostać zrealizowane jako osobne procedury.
Procedury realizuj wg dowolnej kolejności zwiększając stopniowo funkcjonalność programu.
Zacznij od stworzenia menu. Menu powinno reagować na naciśnięcie klawisza bez
potwierdzania przez ENTER.
strona 16
Pascal_cwiczenia_do_ksiazki_helionu_32_6 – wykonał Tomasz Roszczyk
9 Sprawdzian końcowy teoretyczny
Sprawdzian końcowy teoretyczny.
Sprawdzian końcowy teoretyczny rozwiązanie
Sprawdzian końcowy teoretyczny poprawa
Sprawdzian końcowy teoretyczny poprawa rozwiązanie
Sprawdzian końcowy teoretyczny poprawa 2
Sprawdzian końcowy teoretyczny poprawa 2 rozwiązanie
10 Sprawdzian końcowy praktyczny
Sprawdzian końcowy praktyczny
Rozwiązanie zadania nr 8 ze sprawdzianu praktycznego z wykorzystaniem przykładu zapisz
ilustrującego tworzenie plików. Jest to prosta przeróbka tego programu.
Rozwiązanie zadania 8a
Sprawdzian praktyczny poprawkowy
11 Sprawdzian z programowania strukturalnego i budowy
programu.
Sprawdzian jest oparty o program magazyn.
Oryginalny listing (poprawny)
Listing do zadania 1 (zawiera treść zadań)
Listing do zadania 2 (zawiera treść zadań)
Sprawdzian poprawkowy
12 Klasyczne algorytmy iteracyjne.
12.1 Wyszukiwanie najmniejszej (największej).
12.2 Wyszukiwanie liczby w tablicy
12.3 Test – liczba pierwsza czy złożona.
Schemat blokowy i omówienie problemu w podręczniku „Informatyka” cz.1 listing 4.2 dla
c++.
Rozwiązanie w Pascalu.
strona 17