Programowanie. Wprowadzanie danych i wyprowadzanie wyników. Klasa 2 Lekcja 24 WEJŚCIE/WYJŚCIE



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

Programowanie w Turbo Pascal

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

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

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};

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

Język programowania PASCAL

Wstęp do programowania. Różne różności

Pascal - wprowadzenie

Pliki. Operacje na plikach w Pascalu

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

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

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR:

Podstawy programowania

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

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Podstawy programowania

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Instrukcja standardowa Writeln

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Warsztaty dla nauczycieli

lekcja 8a Gry komputerowe MasterMind

Podstawy programowania

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}

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

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Wprowadzenie komentarzy do programu

Podstawy Programowania C++

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

Algorytmika i pseudoprogramowanie

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

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Programowanie Delphi obliczenia, schematy blokowe

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Podstawy programowania

Wykład PASCAL - Pliki tekstowe

1 Wprowadzenie do algorytmiki

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

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

Delphi Laboratorium 3

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Algorytm. a programowanie -

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

Lekcja 6: Pascal. Procedura i funkcja

Liczby losowe i pętla while w języku Python

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

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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

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

Podprogramy. Procedury

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Algorytmy i struktury danych

Wstęp do programowania

Zasady Programowania Strukturalnego

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Spis treści. I. Pascal

RACHUNEK PRAWDOPODOBIEŃSTWA ZADANIA Z ROZWIĄZANIAMI. Uwaga! Dla określenia liczebności zbioru (mocy zbioru) użyto zamiennie symboli: Ω lub

Zakres wykładu INFORMATYKA. dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Turbo Pascal. Zadania z programowania z przykładowymi rozwiązaniami

ForPascal Interpreter języka Pascal

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Okna i liczby pseudolosowe

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.

Podstawy programowania Pascal/Java/C# : skrypt do wykładu i laboratoriów / Jacek M. Czerniak, Łukasz Apiecionek, Grzegorz Zych.

Programowanie w języku Python. Grażyna Koba

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Podstawy programowania

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Laboratorium nr 1. i 2.

Podstawy programowania skrót z wykładów:

Ilość cyfr liczby naturalnej

Obsługa klawiszy specjalnych

Wykład 2 Składnia języka C# (cz. 1)

Jerzy Nawrocki, Wprowadzenie do informatyki

Visual Basic for Application (VBA)

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Programowanie, algorytmy i struktury danych

Instrukcje iteracyjne (pętle)

Transkrypt:

Programowanie Wprowadzanie danych i wyprowadzanie wyników Klasa 2 Lekcja 24 WEJŚCIE/WYJŚCIE

Losowanie danych W wielu zastosowaniach (np( np.. szyfrowanie, symulacje, gry komputerowe, grafika komputerowa) konieczne jest wprowadzenie do programu elementu przypadkowości. Większo kszość języków w programowania posiada generatory liczb pseudolosowych, umożliwiaj liwiające wybieranie przypadkowych" liczb. Przypadkowość jest tu pojęciem umownym, ponieważ tak naprawdę liczby te tworzone sąs według z góry g ustalonego schematu. W języku j Pascal do losowania liczb służy s y funkcja Random i procedura Randomize.

Losowanie danych Funkcja Random ma dwie postacie: r := Random; generuje losową liczbę rzeczywistą z przedziału u [0; 1) (domkniętego lewostronnie, a więc c nigdy nie wylosuje liczby 1, natomiast może wylosować 0). i := Random(n); generuje losową liczbę naturalną z przedziału u [0; n). Przykład 12 Symulacja rzutów w sześcienn cienną kostką do gry program Przyklad12; var i: integer; begin for i := 1 to 10 do Writeln('Wypadło ', Random(6) + 1); end.

Losowanie danych Uruchamiając c program kilka razy pod rząd zauważymy, że e za każdym razem sąs losowane te same liczby! Nie jest to jednak błąb łąd d Pascala, lecz jego specyfika. Polega ona na tym, że e przy każdym uruchomieniu programu generator liczb pseudolosowych startuje od początku", dając c w efekcie te same wartości. Aby pozbyć się tej niedogodności, należy y przed pierwszym wywołaniem funkcji Random użyć procedury Randomize. Wówczas generator liczb pseudolosowych będzie b inicjalizowany aktualnym czasem systemowym. Dokładny opis procedury Randomize można znaleźć w pomocy systemu Turbo Pascal.

Losowanie danych Ćwiczenie 11 Przepisz i uruchom kilkakrotnie program Przyklad12. Sprawdź otrzymane każdorazowo wyniki. Następnie zmodyfikuj program tak, by eksperyment za każdym razem dawał inne rezultaty. Uruchom kilkakrotnie zmodyfikowany program. Ćwiczenie 12 Napisz program symulujący dziesięciokrotny rzut dwiema sześciennymi kostkami do gry i wypisujący sumy wyrzuconych oczek.

Sprawdzanie poprawności danych Niezmiernie istotnym zagadnieniem jest sprawdzanie poprawności danych wprowadzanych do programu. Dzięki temu jesteśmy zabezpieczeni przed niespodziewanym przerwaniem pracy programu oraz zapewniamy zgodność danych wejściowych ze specyfikacją zadania.

Sprawdzanie poprawności danych Ćwiczenie 13 Przepisz i uruchom program Cwiczenie13. Gdy program będzie czekał na wprowadzenie wartości zmiennej x, wpisz dowolny ciąg g znaków, który nie jest liczbą całkowit kowitą.. Zaobserwuj i skomentuj efekty. program Cwiczenie13; var x: Integer; begin Write('Podaj x:'); Readln(x); Writeln(x,,,A2=', x*x); end.

Sprawdzanie poprawności danych Po podaniu jako wartości zmiennej ciągu znaków innego niż liczba całkowita program przerywa swoje działanie, anie, wyświetlaj wietlając c komunikat Runtime error 106..." świadczący cy o tym, że e wprowadzona dana nie jest poprawna. Dzieje się tak, ponieważ procedury Read i Readln nie posiadają mechanizmu zabezpieczającego cego przed wprowadzeniem do programu danej innego typu niż typ zmiennej użytej u w tych instrukcjach. Rozwiązaniem zaniem tego problemu jest zadeklarowanie wczytywanej danej jako ciągu tekstowego, a następnie jej zamiana na liczbę przy użyciu standardowej procedury Val.

Sprawdzanie poprawności danych Val(a,, v, err) gdzie: s wyrażenie tekstowe (np( np.. zmienna typu string); v zmienna typu liczbowego (całkowitego lub rzeczywistego); err zmienna typu całkowitego. Jeżeli eli tekst s tworzył poprawną liczbę,, to po wykonaniu procedury w zmiennej v znajdzie się liczbowa wartość tego tekstu, a w zmiennej err liczba zero, oznaczająca ca poprawną konwersję.. W przeciwnym razie w zmiennej err znajdzie się liczba będąca numerem błęb łędnego znaku w wyrażeniu s.

Sprawdzanie poprawności danych Przykład 13 Program sprawdzający poprawność wprowadzanych danych (w pliku program Przyklad13; var s: string; x: integer; err: integer; begin Write( Podaj liczbę: ); Readln(s); Val(s,, x, err); if err = 0 then Writeln( Wprowadzono Wprowadzono poprawną liczbę,, x =', x) else (w pliku przyklad13) Writeln( Wprowadzono Wprowadzono niepoprawną liczbę,, numer błęb łędnego znaku:, err); end.

Sprawdzanie poprawności danych Ćwiczenie 14 Napisz funkcje ReadlntSafe i ReadRealSafe umożliwiaj liwiające bezpieczne wprowadzenie danych typu integer i real. Jakiego typu wartości powinny zwracać te funkcje, aby wywołuj ujący je program miał możliwo liwość sprawdzenia, czy wprowadzono poprawne dane? Wiedząc, jak zabezpieczyć się przed wprowadzeniem danych niewłaściwego typu i powstaniem błęb łędów w wykonania programu, możemy zająć się kwestią zgodności danych wejściowych ze specyfikacją zadania. Z punktu widzenia obsługi programu przez użytkownika u wskazane byłoby, aby był on natychmiast powiadamiany o wprowadzeniu niepoprawnej danej liczbowej i mógłm ją od razu poprawić.

Sprawdzanie poprawności danych Przykład 14 Program zamieniający numer miesiąca na nazwę miesiąca (w pliku przyklad14): program Przyklad14; var m: integer; ok: boolean; begin repeat Write('Podaj numer miesiąca:'); ok := ReadlntSafe(m); if not ok then Writeln( Niepoprawny format liczby') else if (m<1) or (m>12) then Writeln('Numer miesiąca spoza przedziału u [1; 12]'); until ok and (m >= 1) and (m <= 12); case m of 1: Writeln( Stycze Styczeń ); 2: Writeln( luty luty ); end; end. W tym programie pętla p repeat będzie wykonywana tak długo, d aża podana dana będzie liczbą całkowit kowitą z przedziału u [1; 12]. Jeżeli eli taka liczba nie zostanie wprowadzona, program wypisze na ekranie stosowny komunikat. Następnie program poprosi o ponowne wprowadzenie danej.

Sprawdzanie poprawności danych Ćwiczenie 15 Napisz program obliczający cy średnią wprowadzonych ocen. Wprowadzenie jako oceny liczby 0 powinno spowodować wyprowadzenie średniej i zakończenie programu. Zabezpiecz się przed podawaniem ocen spoza zakresu [1; 6]. Uwzględnij przypadek, gdy nie podano żadnej oceny. Zadbaj o sformatowanie wyniku.

Warto zapamięta tać Wyniki działania ania programu można nie tylko wyprowadzać na monitor, ale równier wnież zapisać w pliku (na dysku twardym czy innym nośniku niku pamięci masowej). Dla każdej zmiennej użytej w programie pisanym w języku j Turbo Pascal należy y określi lić typ danych,, czyli zbiór r wartości, jakie zmienna może e przyjmować. W języku j Pascal możemy deklarować typy proste (porządkowe i rzeczywiste), łańcuchowe, strukturalne (tablicowe, rekordowe, zbiorowe, plikowe), obiektowe, wskaźnikowe i proceduralne. Do typów w porządkowych zaliczamy: całkowity kowity, okrojony, wyliczeniowy, znakowy i logiczny. Dane typu prostego należą do uporządkowanego i skończonego zbioru elementów w i zajmują określony obszar pamięci. Określenie formatu liczby nie zmienia jej wartości, tylko sposób wyświetlania wietlania na urządzeniu wejścia/wyj cia/wyjścia. cia. Typ okrojony służy s y do ograniczania zakresu wartości dowolnego typu porządkowego.

Warto zapamięta tać Typ wyliczeniowy stosuje się zazwyczaj do zbiorów w o niewielkiej liczbie elementów, na których nie wykonuje się operacji arytmetycznych. Stos to struktura danych, w której dostępny jest tylko element znajdujący się na wierzchołku. Zastosowanie funkcji Random i procedury Randomize umożliwia losowanie danych liczbowych przez komputer. Pisząc c programy, należy y zapewnić sprawdzanie poprawności wprowadzanych danych, np.. uniemożliwi liwić wprowadzanie tekstu, gdy powinna być wprowadzona liczba. Dobry program powinien być odporny na błędy użytkownika.. Niezależnie od tego, jak bezsensowne dane wprowadzać będzie użytkownik, u wykonanie programu nigdy nie powinno zostać przerwane z tego powodu.

Zadanie domowe 1. Napisz funkcje ReadIntSafeRange i ReadRealSafeRange umożliwiaj liwiające bezpieczne wprowadzenie danych typu integer i real oraz sprawdzające, czy wprowadzone dane należą do odpowiedniego przedziału u obustronnie domkniętego. Zadbaj o właściwą postać parametrów w i wyników w funkcji. 2. Napisz funkcję Losuj(m,, n) zwracającą losową liczbę całkowit kowitą z przedziału u obustronnie domkniętego [m; n] gdzie m i n są liczbami całkowitymi. 3. Napisz program losujący 6 liczb z przedziału [1; 49].. Użyj U funkcji Losuj. 4. Napisz funkcję Kostka(k,, s) symulującą rzut k kostkami każda o s ściankach. ciankach. Kostki takie wykorzystywane sąs np.. w grach RPG (Role Playing Games). 5. Użyj funkcji Random do wypełnienia liczbami tablicy n liczb całkowitych (n zdefiniuj jako stałą łą). Wyprowadź zawartość tablicy, po 10 liczb w wierszu ekranu. Posortuj tablicę i wyprowadź ponownie na ekran.

Dla zainteresowanych Sprawdź,, jak działa a funkcja SizeOf() (). Użyj tej funkcji do wykonania ćwiczenia 2 z niniejszego tematu. Napisz program umożliwiaj liwiający wprowadzenie daty w postaci trzech liczb określaj lających kolejno rok, miesiąc c i dzień. Program powinien odrzucać niepoprawne daty (np( np.. 31 kwietnia) i w takim przypadku prosić użytkownika o ponowne wprowadzenie odpowiedniej wartości. Wykorzystaj funkcję ReadlntSafeRange. Uwzględnij w programie lata przestępne. pne. Jaka formuła a określa przestępno pność roku? Napisz własnw asną procedurę wprowadzania liczb, akceptującą tylko cyfry, znak minus i kropkę dziesiętn tną. Wskazówka: Użyj funkcji ReadKey. Korzystając c z funkcji Kostka, zasymuluj wynik doświadczenia polegającego na tysiąckrotnym rzuceniu dwiema sześciennymi kostkami i zliczaniu, ile razy wypadają poszczególne sumy oczek. Przedstaw wyniki w postaci histogramu.