wstęp do programowania

Post on 11-Jan-2017

228 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Wstęp do programowania

wykład 2

Piotr CybulaWydział Matematyki i Informatyki UŁ

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

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

słowa kluczoweinstrukcje itd ....

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ą

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

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

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

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

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

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

Pascal: program nazwa_programu;

część deklaracyjnabegin

część wykonywalnaend.

Ada: procedure nazwa_programu is

część deklaracyjnabegin

część wykonywalnaend nazwa_programu;

C/C++: int main(){

część deklaracyjna i wykonywalna}

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

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;

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;

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

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

Pascal:do przechowywania liczb całkowitych:

shortint integerlongint

do przechowywania znaków alfanumerycznych:char

do przechowywania liczb zmiennoprzecinkowych

real

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

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

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

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

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)

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

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

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): & | ~ ^ << >>

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.:++ -- += -= *= /= %=

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 /* .... */

top related