Pascal_cwiczenia_do_ksiazki_helionu_32_6 wykonał Tomasz Roszczyk



Podobne dokumenty
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Programowanie w Turbo Pascal

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Język programowania PASCAL

Pascal - wprowadzenie

Wprowadzenie komentarzy do programu

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie w języku C++ Grażyna Koba

Wstęp do Programowania Lista 1

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Programowanie w języku Python. Grażyna Koba

Programowanie i techniki algorytmiczne

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Zapisywanie algorytmów w języku programowania

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Instrukcje sterujące

6. Pętle while. Przykłady

Programowanie - wykład 4

Algorytm. a programowanie -

INSTRUKCJE PĘTLI, INSTRUKCJA WYBORU. Instrukcja pętli For to do

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Warsztaty dla nauczycieli

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Podstawy Programowania

Ilość cyfr liczby naturalnej

Podstawy Programowania Podstawowa składnia języka C++

Podstawy i języki programowania

Procedury i funkcje. Przykład programu z procedurą. Definicja. Cechy procedury

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Laboratorium 5: Tablice. Wyszukiwanie binarne

WHILE (wyrażenie) instrukcja;

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Podstawy programowania

1 Podstawy c++ w pigułce.

lekcja 8a Gry komputerowe MasterMind

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Laboratorium nr 1. i 2.

Pętle. Dodał Administrator niedziela, 14 marzec :27

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Programowanie strukturalne i obiektowe. Funkcje

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Język ludzki kod maszynowy

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

Zasady programowania Dokumentacja

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Rekurencja (rekursja)

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

1 Wprowadzenie do algorytmiki

Metody numeryczne Laboratorium 2

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Instrukcja standardowa Writeln

Podstawy Programowania C++

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

Schematy blokowe. Algorytmy Marek Pudełko

Pliki. Operacje na plikach w Pascalu

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

WHILE (wyrażenie) instrukcja;

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Zapis algorytmów: schematy blokowe i pseudokod 1

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Transkrypt:

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. 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 6.2 Semestralny sprawdzian teoretyczny... 10 7 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 Wyszukiwanie najmniejszej (największej).... 17 12.2 Wyszukiwanie liczby w tablicy... 17 12.3 Test liczba pierwsza czy złożona.... 17 strona 1

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 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. 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: Czyli x y =e y*ln(x) 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

d e a b * c f g a b c d e f g 3,0 17,9 18,1 24,5 3,0 3,0 12,0 Wynik = 18,520 strona 3

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 a b * c d f Kontrola prawidłowości wzoru 2. Dla zmiennych: e g f e a b c d * g a b c d e f g 3,0 17,9 18,1 24,5 3,0 3,0 12,0 Wynik = 10,885 obliczeniowe listing programu strona 4

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

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

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>. 1c pętlą repeat until. 1c pętlą for Żeby program nie robił zbędnych przebiegów można wyliczyć start pętli dla liczby zbliżonej do minimum. 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). 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 B c d e f g 3,0 17,9 18,1 24,5 3,0 3,0 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. obliczeniowe (Excel) 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

setnej. Co można powiedzieć o złożoności obliczeniowej i złożoności kodu programu dla obu rozwiązań? 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. 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ń) 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. strona 8

5 Ćwiczenie utrwalające do tematów instrukcja warunkowa i pętle. 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 (W max ). Dla trójkąta niech długość podstawy pozostaje stała (pobrana od użytkownika). Niech zmienia się wysokość w przedziale od 1 do W max. Dla prostokąta jeden z boków niech poda użytkownik a drugi zmieniaj od 1 do W max. We wzorze na pole koła mamy tylko jedną zmienną r. Przyjmij od użytkownika wartości R min i R max 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 6 Sprawdzian semestralny 6.1 Praktyczny Semestralny sprawdzian praktyczny 7 zadań zadania nr 1 ze sprawdzianu praktycznego zadania 1 z wykorzystaniem procedur zadania nr 2 ze sprawdzianu praktycznego zadania nr 3 ze sprawdzianu praktycznego zadania nr 4 ze sprawdzianu praktycznego zadania nr 5 ze sprawdzianu praktycznego zadania nr 6 ze sprawdzianu praktycznego zadania nr 7 ze sprawdzianu praktycznego (funkcja mod opisana w rozdziale wyrażenia tablica 2) strona 9

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

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 r min do r max. 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. strona 11

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. 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ż. 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

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ć). dłuższe ale łatwiejsze do analizy. 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

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

Zadanie 5 Wykonaj program, który zapisze do pliku liczby parzyste z przedziału od 2 do 1000. 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. 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. strona 15

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

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 zadania nr 8 ze sprawdzianu praktycznego z wykorzystaniem przykładu zapisz ilustrującego tworzenie plików. Jest to prosta przeróbka tego programu. 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++. w Pascalu. strona 17