wstęp do programowania

25
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula

Upload: phungquynh

Post on 11-Jan-2017

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Wstęp do programowania

Wstęp do programowania

wykład 2

Piotr CybulaWydział Matematyki i Informatyki UŁ

2012/2013http://www.math.uni.lodz.pl/~cybula

Page 2: Wstęp do programowania

Język programowaniaKażdy język ma swoją składnię:

słowa kluczoweinstrukcje itd ....

Page 3: Wstęp do programowania

Dozwolone nazwyNazwy (identyfikatory, ang. identifiers) mogą odnosić się do (pod)programów, zmiennych, stałych...

zazwyczaj nazwą może być dowolnie długi ciąg liter (nie używamy polskich!), cyfr i znaków podkreślenia zaczynający się od litery

poprawne nazwy: liczba_1, liczba1, x, d1niepoprawne nazwy: 1liczba, wężyk, rp2_1/2

niektóre języki rozróżniają rozmiar liter użytych w nazwach

C/C++ rozróżnia małe i wielkie literyPascal i Ada nie rozróżniają

Page 4: Wstęp do programowania

„Trzecia potęga” w języku Pascal

(* program obliczajacy trzecia potege liczby *)

program potega;uses crt; var a, p2, p3: integer;begin writeln('Program oblicza trzecia potege podanej

liczby'); write('Podaj a:'); read(a); p2 := a * a; p3 := p2 * a; write('Wynik wynosi ', p3); repeat until keypressed;end.

Page 5: Wstęp do programowania

„Trzecia potęga”w języku C

/* program obliczajacy trzecia potege liczby */

#include <stdio.h>int main() { int a, p2, p3; printf("Program oblicza trzecia potege

podanej liczby \n"); printf("Podaj a: "); scanf("%d", &a); p2 = a * a; p3 = p2 * a; printf("Wynik wynosi %d\n", p3); system("pause"); return 0; }

Page 6: Wstęp do programowania

„Trzecia potęga”w języku C++

/* program obliczajacy trzecia potege liczby */

#include <iostream>int main() { int a, p2, p3; std::cout << "Program oblicza trzecia potege

podanej liczby" << std::endl; std::cout << "Podaj a: " ; std::cin >> a; p2 = a * a; p3 = p2 * a; std::cout << "Wynik wynosi " << p3 << std::endl; system("pause"); return 0; }

Page 7: Wstęp do programowania

„Trzecia potęga”w języku Ada

-- program obliczajacy trzecia potege liczbywith ada.text_io, ada.integer_text_io;use ada.text_io, ada.integer_text_io;procedure potega is a, p2, p3: integer;begin put_line("Program oblicza trzecia potege podanej

liczby"); put("Podaj a: "); get(a); p2 := a * a; p3 := p2 * a; put("Wynik wynosi "); put(p3, 0); end potega;

Page 8: Wstęp do programowania

Słowa kluczoweW każdym języku programowania występują pewne słowa kluczowe. Mają specjalne znaczenie (np. są elementem instrukcji, nazwą jakiegoś predefiniowanego typu itp). Słów kluczowych nie można użyć jako nazw.

Przykładowe słowa kluczowe w C: int, if, else, float, typedef, for, while ...Edytor przystosowany do pracy z danym językiem zazwyczaj wyróżnia słowa kluczowe tego języka

Page 9: Wstęp do programowania

Struktura programuProgram ma najczęściej pewną ustaloną strukturę:

Pascal: program nazwa_programu;

część deklaracyjnabegin

część wykonywalnaend.

Page 10: Wstęp do programowania

Ada: procedure nazwa_programu is

część deklaracyjnabegin

część wykonywalnaend nazwa_programu;

C/C++: int main(){

część deklaracyjna i wykonywalna}

Page 11: Wstęp do programowania

Poszczególne instrukcje programu kończymy zazwyczaj średnikami

niekiedy może być nakazane kończenie pewnych linii kropką (Pascal, ostatnia linia programu)

Poza nielicznymi przypadkami układ tekstu w linii czy też fakt rozłożenia go na kilka linii nie ma znaczeniaCzęść deklaracyjna zawiera deklaracje zmiennych, część wykonywalna (imperatywna) – instrukcje do wykonania

Page 12: Wstęp do programowania

Deklaracje zmiennychMusimy określić, jakiego typu będą używane przez nas zmienne (jak interpretować poszczególne bity) oraz spowodować, żeby została zarezerwowana pamięć na ich przechowanie (domyślnie wartość jest przypadkowa):

C/C++: typ nazwa_zmiennej;Ada: nazwa_zmiennej: typ;Pascal: nazwa_zmiennej: typ; deklaracje poprzedzamy słowem kluczowym var

Przykład: int a, b = 5;

Page 13: Wstęp do programowania

Deklaracje stałychJeżeli zmienna ma mieć chronioną wartość deklarujemy ją jako stałą, koniecznie inicjalizując przy deklaracji:

C/C++: const typ nazwa_stałej = literał;Ada: nazwa_stałej: constant typ :=

literał;Pascal: nazwa_stałej = literał; deklaracje stałych poprzedzamy słowem const

Przykład:const float podatek = 0.19;

Page 14: Wstęp do programowania

Typy predefiniowaneW języku istnieją zazwyczaj pewne predefiniowane typy, np. liczbowe, logiczne, znakowe...

Page 15: Wstęp do programowania

C/C++:do przechowywania liczb całkowitych:

short int intlong int

do przechowywania znaków alfanumerycznych:char

wszystkie powyższe typy mogą występować w dwóch wersjach: ze znakiem (signed) i bez znaku (unsigned). W przypadku typów całkowitych domyślnie przyjmuje się, że są one ze znakiem

do przechowywania liczb zmiennoprzecinkowychfloatdoublelong double

Page 16: Wstęp do programowania

Pascal:do przechowywania liczb całkowitych:

shortint integerlongint

do przechowywania znaków alfanumerycznych:char

do przechowywania liczb zmiennoprzecinkowych

real

Page 17: Wstęp do programowania

Ada:do przechowywania liczb całkowitych:

short_integer integerlong_integerlong_long_integer

do przechowywania znaków alfanumerycznych:character

do przechowywania liczb zmiennoprzecinkowych

floatlong_floatlong_long_float

Page 18: Wstęp do programowania

Zakresy typówZakresy poszczególnych typów mogą być albo ściśle określone, albo zależeć od implementacji (czyli od kompilatora)

ZAWSZE istnieje w każdym typie wartość największa i najmniejszaWyniki działań (operatorów) mogą przekroczyć dopuszczalny zakres

Page 19: Wstęp do programowania

OperatoryW języku zdefiniowane są pewne operatory, których można używać do konstruowania wyrażeń (arytmetycznych, logicznych...)

zazwyczaj mamy dostępne operatory arytmetyczne:+ - * / i możemy przy konstruowaniu wyrażeń

arytmetycznych używać nawiasów

Page 20: Wstęp do programowania

pewne specyficzne operatory arytmetyczne, jak:

Pascal: div – dzielenie całkowite, mod – reszta z dzielenia; zdef. dla liczb całkowitychAda: rem i mod zdef. dla liczb całkowitychC/C++: % - reszta z dzielenia, zdef. dla liczb całkowitych

Page 21: Wstęp do programowania

Typ zwracanego wyniku zależy zazwyczaj od typu argumentów operatora (operandów), np. w C/C++ dzielenie liczb całkowitych daje w wyniku część całkowitą z dzieleniaKolejność wykonywania operatorów jest zależna od ich priorytetów (mogą być różne w różnych językach)

Page 22: Wstęp do programowania

operatory porównywania:< <= > >= „różne” i „równe” nie wygląda jednakowo

Ada: = /=Pascal: = <>C/C++: == !=

Page 23: Wstęp do programowania

operatory logiczne koniunkcji, alternatywy i negacji:

Ada: and or notPascal: and or notC/C++: && || !

czasami język udostępnia również pewne specyficzne operatory:

Ada (logiczne): or else and then xorC/C++ (bitowe): & | ~ ^ << >>

Page 24: Wstęp do programowania

Operacja przypisaniaDo przypisania zmiennej wartości innej zmiennej lub wyrażenia służy operator przypisania:

Ada, Pascal: :=C/C++: =w C/C++ przypisanie jest operatorem i występuje w wersjach uproszczonych, np.:++ -- += -= *= /= %=

Page 25: Wstęp do programowania

Komentarze w programieTekst ujęty w znaki komentarza nie jest kompilowany / wykonywany

Ada: tekst od dwuznaku -- do końca liniiPascal: tekst ujęty w znaki (* ... *)

(komentarze tego rodzaju można zagnieżdżać)C/C++:

tekst ujęty w znaki /* .... */(komentarzy tego typu nie można zagnieżdżać)tekst od dwuznaku // do końca linii(komentarze tego typu można zagnieżdżać, w tym również w komentarzach /* .... */