Podstawy programowania

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Język C/C++ Funkcje.
Programowanie obiektowe
Programowanie obiektowe
Filip Andrzejewski Remigiusz Chiluta
PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 2: Wstęp do programowania w Pascalu © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 1: Wprowadzenie do programowania.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy programowania PP – WYK2 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Wstęp do interpretacji algorytmów
CO TO JEST ALGORYTM!.
Dr Anna Kwiatkowska Instytut Informatyki
Wprowadzenie do programowania w języku Turbo Pascal
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Budowa algorytmów Algorytm: skończony ciąg operacji wraz z ściśle sprecyzowanym porządkowaniem ich wykonywania, które po realizacji dają rozwiązanie dowolnego.
ALGORYTMY.
Agata Łysakowska Klasa III „n”
Algorytmy Opracowanie: Maria Skalska na podstawie „Informatyka 2000” wydawnictwa Czarny Kruk.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy programowania w języku C i C++
Instrukcje sterujące część 1
LabVIEW Technologie informacyjne – laboratorium Irmina Kwiatkowska
Algorytmy z przykładami w Turbo Pascal 7.0
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Podstawy programowania. Język C i C++– podstawy Temat: 1
Podstawy programowania w języku C i C++
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
BUDOWANIE SCHEMATU BLOKOWEGO REALIZUJĄCEGO PROSTY ALGORYTM
Programowanie strukturalne i obiektowe
ALGORYTMY.
Algorytmy.
Elżbieta Fiedziukiewicz
Podstawy języka Instrukcje - wprowadzenie
Podstawy programowania
Temat 7: Instrukcje warunkowe
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmy.
Algorytmika.
Wprowadzenie do algorytmiki
C++.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Zapis blokowy algorytmów
Instrukcje wyboru.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
Wstęp do interpretacji algorytmów
Dokumentacja programu komputerowego i etapy tworzenia programów.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Co to jest algorytm? Uporządkowany i uściślony sposób rozwiązania danego problemu, zawierzający szczegółowy opis wykonywanych czynności w skończonej.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Zrozumieć, przeanalizować i rozwiązać
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Podstawy programowania PP - WYK1 Wojciech Pieprzyca

Pojęcia podstawowe Program – określa proces przekształcania danych wejściowych w dane wyjściowe (wyniki) według pewnego algorytmu. Dane wejściowe – informacje dostarczone do programu przez użytkownika, w celu umożliwienia wykonania algorytmu Dane wyjściowe – generowane przez program wyniki działania Algorytm – określa sposób przekształcania danych wejściowych w dane wyjściowe zgodnie z zadanym celem.

Pojęcia podstawowe Programowanie – polega na zapisywaniu algorytmów w formie zrozumiałej dla komputera. Kod źródłowy – program napisany w konkretnym języku programowania (np. Pascal, C++) – czytelny dla programisty Kod wynikowy (wykonywalny) – program zapisany jako ciąg rozkazów w kodzie maszynowym, zrozumiały dla maszyny cyfrowej.

Proces tworzenia programu Kod źródłowy zapisywany jest przez programistę w edytorze kodu w ramach określonego środowiska programowania (w przypadku języka C++ są to pliki *.cpp) Kompilator kompiluje kod źródłowy i tworzy kod wynikowy (pliki *.obj) Linker łączy kod wynikowy z wymaganymi bibliotekami, powstaje plik wykonywalny exe.

Problem informatyczny sformułowanie problemu, określenie danych wejściowych, określenie celu działania, sformułowanie algorytmu działania (sposobu rozwiązania problemu), przedstawienie algorytmu w postaci : opisu słownego, listy kroków, schematu blokowego, jednego z języków programowania. Analiza poprawności rozwiązania, Testowanie rozwiązania dla różnych danych oraz ocena efektywności przyjętej metody.

Algorytm Algorytm to przepis postępowania, który doprowadza do uzyskania pożądanego efektu – rozwiązania zadania. W życiu codziennym spotykamy się z rozmaitymi algorytmami, niekoniecznie związanymi z informatyką. Za algorytmy (choć często nieścisłe) można uznać przepisy kucharskie, zapis nutowy muzyki, instrukcje montażu, itp. Ludzie nie muszą otrzymywać algorytmów objaśnianych dokładnie – wiele mogą sobie dopowiedzieć, wywnioskować z kontekstu czy doświadczenia.

Algorytm Jednak zapis algorytmu w postaci słownej jest wysoce nieskuteczny ze względu na duże możliwości niejednoznacznej interpretacji takiego zapisu. Komputer nie posiada zdolności domyślania się, wyciągania wniosków z danego kontekstu działania, nie rozumie języka naturalnego. W związku z tym konieczne jest szczegółowe i jednoznaczne określenie czynności, które mają zostać wykonane. Jest to sposób ogólny, tak by na jego podstawie można było zaimplementować program w dowolnym języku programowania.

Schematy blokowe Jednym ze sposobów ścisłego zapisu algorytmu jest forma graficzna zapisu w postaci schematu blokowego. Schemat blokowy obrazuje za pomocą umownych symboli sekwencje wykonywanych operacji oraz kierunek przepływu informacji. Jest to diagram, na którym wykonywane operacje reprezentowane są przez figury geometryczne, połączone strzałkami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu działania.

Schematy blokowe Blok graniczny (etykieta) – używane do oznaczenia początku i końca algorytmu Blok wejścia/wyjścia – służy do wprowadzania danych z zewnątrz (odczyt danych) lub wyprowadzania wyników np. na ekran (zapis danych) Blok wykonawczy (operand) – jedna lub kilka instrukcji, które mają zostać wykonane. W ramach tego elementu mogą być wykorzystane instrukcje przypisania (=) oraz operatory arytmetyczne (+,-,*,/).

Schematy blokowe Blok decyzyjny (predykat) – element z jednym wejściem i dwoma wyjściami. Element posiada część warunkową w postaci wyrażenia logicznego. W zależności od tego czy warunek został spełniony czy też nie. Łącznik wewnętrzny – służy do łączenia odrębnych części schematu, znajdujących się na tej samej stronie, powiązane ze sobą łączniki oznaczone są tym samym napisem Łącznik zewnętrzny – służy do łączenia odrębnych części schematu, znajdujących się różnych stronach, powiązane ze sobą łączniki oznaczone są tym samym napisem

Schematy blokowe Przykład prostego schematu blokowego dla programu obliczającego sumę dwóch liczb

Instrukcje programowania Instrukcja przypisania Jest to instrukcja postaci v:=E, gdzie v to zmienna czyli obiekt, który może przyjmować wartości określonego typu (np. liczba całkowita, liczba rzeczywista, znak, ciąg znaków, itp.). E to wyrażenie. Najpierw wyliczana jest wartość wyrażenia E występującego po prawej stronie instrukcji przypisania, a potem obliczona wartość zostaje przypisana do zmiennej v. a := a+b; i := 2+5; //i=7 i := i+1; //i=8 j := i; //j=8

Instrukcje programowania Instrukcja warunkowa Instrukcja warunkowa ma postać: if warunek then instrukcja1 else instrukcja2 Warunek jest wyrażeniem logicznym, które może być spełnione (wartość true) lub niespełnione (wartość false). Instrukcja warunkowa pozwala nam wybrać jeden z dwóch wariantów dalszego wykonania programu w zależności od tego, czy warunek jest spełniony, czy nie.

Instrukcje programowania Instrukcja warunkowa W pierwszym kroku obliczana jest wartość wyrażenia warunkowego i jeśli jest ono równe true, to wykonujemy ciąg instrukcji oznaczony jako instrukcja1, a jeżeli nie, wykonujemy ciąg instrukcji oznaczony jako instrukcja2. Przykład: if a<b then c:=a else c:=b;

Instrukcje programowania Instrukcja warunkowa

Instrukcje programowania Instrukcja pętli Instrukcja pętli ma postać: while wyrazenie do instrukcja1 Wyrażenie jest warunkiem logicznym, a instrukcja1 jest ciągiem instrukcji, które pętla ma powtarzać, tak długo aż spełniony jest warunek podany w wyrażeniu. Wykonanie pętli zaczyna się od obliczenia wartości warunku.

Instrukcje programowania Instrukcja pętli Jeśli wartość ta wynosi false, to pętla nie robi niczego i kończy swoje działanie, ale jeśli wynosi true, to pętla wykonuje instrukcje, a następnie wraca do sprawdzenia warunku. Pętla jest wykonywana tak długo, aż warunek przestanie być spełniony. Może się zdarzyć, że warunek nigdy nie przestanie być spełniony i pozostanie prawdziwy na zawsze. Program wtedy nie zatrzyma się nigdy i mówimy o takiej sytuacji, jako o zapętleniu programu.

Instrukcje programowania Instrukcja pętli Przykład: while b>1 do b:=b/2;

Narzędzie pracy Programy na laboratorium piszemy w środowisku Borland Builder C++, Programujemy w trybie konsoli tekstowej tzn. na zajęciach PP uczymy się programować a nie obsługiwać środowisko wizualne.

Jak wejść do trybu konsoli?(1) Po uruchomieniu BBC++ klikamy na ikonę znajdującą się w lewym górnym rogu programu, Następnie wybieramy Console Wizard

Jak wejść do trybu konsoli?(2) Opcje konfiguracyjne konsoli pozostawiamy bez zmian i klikamy OK, W ten oto prosty sposób udało się nam przejść do trybu konsoli i jesteśmy gotowi by napisać pierwszy program

Pierwszy program (1) Po uruchomieniu konsoli automatycznie generowany jest szkielet programu, Zawiera on dyrektywy kompilatora (rozpoznamy je po tym, że zaczynają się od znaku #), podstawowa dyrektywa kompilatora taka jak np. include pozwala na dołączenie plików nagłówkowych (czyli deklaracji funkcji bibliotecznych, które będą nam potrzebne podczas pisania programów). Przykładem pliku nagłówkowego jest iostream.h.

Pierwszy program (2) Na początku będą nam potrzebne funkcje biblioteczne z 3 plików nagłówkowych: vcl.h – standardowa biblioteka BBC++, której dołączenie jest niezbędne do poprawnej kompilacji, iostream.h – biblioteka wejścia/wyjścia, pozwala m.in. wyświetlać informacje na strumieniu wyjściowym (np. monitorze) i pobierać dane ze strumienia wejściowego (np. klawiatury), conio.h – zawiera interesującą funkcje getch(), oczekującą na naciśnięcie klawisza przez użytkownika. W środowisku konsoli pozwoli nam to zobaczyć okno tekstowe programu (bez getch() okno jest automatycznie zamykane po wykonaniu programu).

Pierwszy program (3) Każdy program w języku C obowiązkowo zawiera funkcję main. Jest to główna funkcja programu od której rozpoczyna się proces wykonywania programu. Treść każdej funkcji (tzw. ciało programu) zawiera się w obszarze ograniczonym przez dwa nawiasy klamrowe. { ….. (ciało) }

Pierwszy program (4) Pierwszy program będzie wyświetlał powitanie na ekranie. //dyrektywy dotyczące plików nagłówkowych #include <vcl.h> #include <iostream.h> #include <conio.h> //definicja funkcji main int main(int argc, char* argv[]) { //wyświetlenie napisu na ekranie cout << ”Witaj w swoim pierwszy programie!”; //oczekiwanie na naciśnięcie klawisza getch(); return 0; }

Pierwszy program (5) Uwagi do programu: - niektóre linie kodu poprzedzone znakami // stanowią komentarz i nie są brane pod uwagę w czasie kompilacji programu, - funkcja main zawiera argumenty wejściowe i wyjściowe, ponieważ jednak tworzona jest ona automatycznie przez środowisko BBC++ to na razie pominiemy ten aspekt i wrócimy do jego omówienia w rozdziale dotyczącym funkcji, - jedyną linią kodu do samodzielnego wpisania jest ta z instrukcją cout powodującą wysłanie tekstu przekazanego po operatorze << na domyślny strumień wyjściowy (zwykle monitor). Tekst jawny używany w programie musi zostać objęty apostrofami. Instrukcja endl wymusza przejście do nowej linii, - instrukcja getch() powoduje zatrzymanie programu aż do naciśnięcia klawisza przez użytkownika, - return w tym przypadku zawraca kod pomyślnego zakończenia funkcji.

Jak skompilować program?(1) W celu kompilacji programu należy nacisnąć klawisze ALT+F9. Zazwyczaj jednak będziemy jednocześnie chcieli skompilować program i go uruchomić (klawisz F9). Kompilujemy program i…

Jak skompilować program?(2) KOMPILACJA Sukces :-) Porażka :-( Nie pojawiają się komunikaty o błędach, pojawia się za to okno programu w trybie tekstowym. Kompilator informuje nas o występujących błędach składni i podświetla linie w której wystąpił pierwszy błąd

Słowa kluczowe Słowa kluczowe są integralną częścią składni języka. Oznacza to, że są one zarezerwowane i nie mogą być używane w innych celach niż to pierwotnie założono, nie można ich np. wykorzystać do nadawania nazw zmiennych czy funkcji. Przyklady slów kluczowych: asm, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, this, throw, try, typedef, unsigned, virtual, void, volatile, while

Zmienne Pod pojęciem zmiennej rozumiemy zwykle komórkę pamięci, której rozmiar zależy od typu danej, którą chcemy w niej przechowywać. Inny będzie więc rozmiar zmiennej dla liczby całkowitej, a inny dla ciągu znaków. Każda zmienna posiada swój adres w pamięci, jednak odwoływanie się do zmiennej poprzez adres byłoby dość kłopotliwe, dlatego też zmiennym można przyporządkować nazwy. Nazwa składa się z ciągu liter i cyfr, nie może jednak zawierać „polskich liter”, spacji ani rozpoczynać się od cyfry. Nie może być oczywiście taka sama jak istniejące słowo kluczowe. W języku C rozróżniane są duże i małe litery.

Typy danych Tak jak już wspomnieliśmy każda zmienna w języku C musi mieć ściśle przyporządkowany typ danych. Wyróżniamy następujące podstawowe typy danych: Typ danych Liczba bitów Zakres wartości char 8 -128:127 lub jeden znak ASCII int 32 -2 147 483 648 : 2 147 483 647 unsigned int 0 : 4 294 967 295 short int 16 -32 768 : 32 767 float 3,4*10-38 : 3,4*1038 double 64 2,2*10-308 : 1,8*10308

Deklarowanie zmiennych Wszystkie wykorzystywane zmienne w programie napisanym w języku C++ muszą być najpierw zadeklarowane. Deklaracja polega na podaniu typu i nazwy zmiennej w postaci: typ_zmiennej nazwa_zmiennej; Przykłady deklaracji zmiennych: int liczbacalkowita; float liczbarzeczywista; char znak;

Przykładowy program (1) #include <vcl.h> #include <iostream.h> #include <conio.h> #include <math.h> //plik naglowkowy z funkcja sqrt int main(int argc, char *argv[]) { //deklaracja zmiennych float a,b,c; float delta,x1,x2; //pobranie danych z klawiatury cout << "Podaj a: "; cin >> a; cout << "Podaj b: "; cin >> b; cout << "Podaj c: "; cin >> c; //obliczenie delty i pierwiastkow delta = b*b-4*a*c; x1 = (-b-sqrt(delta))/(2*a); //sqrt – pierwiastek kwadratowy x2 = (-b+sqrt(delta))/(2*a); //wypisanie wynikow na ekranie cout << "x1 = " << x1 << endl; cout << "x2 = " << x2 << endl; getch(); return 0; }

Przykładowy program (2) Uwagi do programu: jak można łatwo się zorientować program nie jest doskonaly, nie sprawdza chociażby czy wskaźnik delta jest nieujemny co jest warunkiem istnienia rozwiązań równania kwadratowego, podobnie nie jest sprawdzane czy iloczyn w mianowniku wyrażenia na rozwiązania x1 i x2 jest niezerowy, w przypadku gdy a=0 uzyskamy błąd dzielenia przez zero, podobnie jak instrukcja cout służyła do wyprowadzenia wyników na ekran, tak instrukcja cin służy do pobrania danych z klawiatury, ponieważ istniała konieczność użycia funkcji pierwiastkowania sqrt, to konieczne było dołączenie funkcji bibliotecznych z pliku nagłówkowego math.h, po zapoznaniu się z instrukcjami warunkowymi będziemy mogli udoskonalić program.

Zmienne globalne, lokalne, zakresy ważności (1) Zmienne globalne swoim zakresem obejmują cały program, oznacza to, że możemy odwoływać się do nich z dowolnego miejsca w programie, Zmienne lokalne swój zakres ograniczają do bloku programu w którym zostały zadeklarowane, blok programu rozpoczyna się nawiasem klamrowym otwierającym {, a kończy nawiasem zamykającym }. Typowym przykładem bloku jest funkcja. Jeżeli zadeklarujemy zmienną globalną i lokalną o takich samych nazwach, to w ramach bloku z deklaracją zmiennej lokalnej będzie obowiązywała wartość zmiennej lokalnej, a poza nim wartość zmiennej globalnej. Mówimy, wówczas, że zmienna lokalna zasłania wartość zmiennej globalnej.

Zmienne globalne, lokalne, zakresy ważności (2) #include <vcl.h> #include <iostream.h> #include <conio.h> //zmienna globalna int zm=100; int main(int argc, char *argv[]) { cout << ”Zmienna przed deklaracja lokalnej:” << zm << endl; //zmienna lokalna int zm = 200; cout << ”Zmienna po deklaracji lokalnej:” << zm << endl; //nowy blok programu int b = 2; cout << ”Zmienna b w bloku:” << b << endl; } //b=3 BŁĄD! Zmienna b nie jest widoczna poza blokiem getch(); return 0;

Instrukcja warunkowe if (1) Instrukcja if służy do sterowania przebiegiem programu i wyboru jednej z kilku alternatywnych dróg jego realizacji w zależności od aktualnych warunków. Składnia: If (warunek) instrukcja1 else instrukcja2 Warunek jest wyrażeniem, które może przyjmować wartość zero (fałsz) lub wartość różną od zera (prawda), Działanie instrukcji warunkowej if: 1. obliczenie wartości wyrażenia warunkowego, 2. jeżeli wartość wyrażenia jest różna od 0 to wykonywana jest instrukcja1, 3. jeżeli wartość wyrażenia jest równa 0 to wykonywana jest instrukcja2

Instrukcja warunkowe if (2) W poniższym programie wyrażenie warunkowe jest prawdziwe dla każdej liczby różnej od zera (zgodnie z założeniem C): #include <vcl.h> #include <iostream.h> #include <conio.h> int main(int argc, char *argv[]) { int liczba; cout << ”Podaj liczbe: ”; cin >> liczba; if (liczba) cout << ”Liczba rozna od 0 (prawda) – warunek jest spelniony”; else cout << ”Liczba rowna 0 (fałsz) – warunek niespelniony”; getch(); return 0; }

Operatory Podstawowe operatory arytmetyczne +,-,*,/ Operator przypisania = Operatory porównania <,>,>=,<=,== Przykład: if (liczba==10) cout << ”Ta liczba to 10”; Operator modulo (reszta z dzielenia) % if (liczba%10==0) cout << ”Ta liczba jest podzielna przez 10”;