W celu rozwiązania dowolnego zadania przy wykorzystaniu komputera należy określić skończoną liczbę czynności, które należy wykonać na określonych danych, tj. skonstruować odpowiedni algorytm. (Algorismus IXw.- pisarz, matematyk perski). Algorytmizacja jest to działanie pozwalające otrzymać algorytm. Algorytm zapisany w języku programowania nazywa się programem, w którym czynności opisane są za pomocą odpowiednich instrukcji języka.
Poznane języki programowania to:
języku maszynowy, symboliczny , wysokopoziomowy
Wady programowania w języku niskopoziomowym:
§ kod ściśle związany z danym komputerem,
§ stosowanie sztuczek optymalizujących program,
§ łatwość popełnienia błędu i trudność wykrycia, brak czytelnej struktury programu.,
Języki wysokopoziomowe – zbliżone do języka zastosowań.
Język programowania, wykorzystywany do zapisu dowolnego programu, korzysta ze skończonego zestawu symboli, których znaczenie i sposób użycia jest ściśle określone.
Główną różnicą dla programisty pomiędzy jęzkykami programowania jest to, iż język wysokopoziomowy jest bardziej czytelny dla programisty i łatwiej jest mu tam wprowadzać korekty niż w języku niskopoziomowym.
2) Co to jest wyrażenie, z czego może się składać!
Wyrażenie – określa sposób obliczania wartości. Składa się ze stałych, zmiennych, operatorów i wywołań funkcji.
2 * PI + sin(x)
A zatem wyrażenie jest zapisem algorytmu określającego sposób obliczania pewnej wartości i składa się z sensownej kombinacji operatorów i argumentów (operandów). Wyrażenie nie stanowi samoistnej instrukcji języka programowania, a jedynie jest jego częścią składową.
......................................... => lanie wody!!!
3) czym się różni procedura od funkcji!
Procedury i funkcje umożliwiają podzielenie części wykonawczej programu na fragmenty zapisane w wyodrębniony sposób w części opisowej bloku. Różnica pomiędzy procedurą a funkcją polega na tym, iż zadaniem procedury jest zwykle obliczenie jednej lub kilku wartości, które są przypisane odpowiednim zmiennym znajdującym się na liście, a zadaniem funkcji jest obliczenie jednej wartości, która podstawiana jest pod tą nazwę. Spowodowanie wykonania procedury lub funkcji w części wykonawczej bloku następuje za pomocą wywołania (odwołania).
5) Wymień rodzaje operacji dostępnych za pomocą procedur i funkcji standardowych operujących na łańcuchach!!
function UpCaseStr(s:string):string; {zamiana łańcucha na duże znaki}
concat(lista_łańcuchów) funkcja łączenia łańcuchów w jeden
copy(łańcuch, indeks, licznik) Funkcja zwraca łańcuch wycięty z łańcucha od wskazanego miejsca
copy(‘Turbo Pascal’,7,6) --> Pascal
length(łańcuch) funkcja zwracająca długość łańcycha
pos(podłańcuch, łańcuch) funkcja zwracająca pozycję od której w łańcuchu zaczyna się podłańcuch lub 0
Concat (połączenie kilku łańcuchów
Delete, insert, Str, Val
6) Przykład recordu, którego polem jest: a-record b-tablica
a- var uczen,prymus:osoba;
b- b- type osoba = record
nazwisko, imie : string[20];
wiek : byte;
dzieci: array [1..10] of data;
end;
7) omów instrukcję złożoną, warunkową oraz wyboru (schemat blokowy, składnia)
instrukcja złożona – jest ciągiem instrukcji poprzedzonym słowem kluczowym begin i zakończony słowem kluczowym end. Instrukcja ta tworzy z ciągu instrukcji jedną, i używana jest, w przypadku gdy składnia języka wymaga użycia jednej instrukcji, a niezbędne jest wykonanie wielu. Instrukcje wchodzące w skład instrukcji złożonej wykonywane są sekwencyjnie.
instrukcja warunkowa – uzależnia wykonanie innych instrukcji od spełnienia określonego warunku. W języku Turbo pascal istnieją dwie instrukcje warunkowe: instrukcja jeśli, instrukcja wyboru.
instrukcja wyboru – poprzedzona jest jedną, lub kilkoma stałymi, zwanymi stałymi wybory. Określają one tok działania programu, w zależności od analizowanych wartości. Chodzi tu o skierowanie działań spełniających określone warunki na odpowiednie miejsce.
Gr 2
1) Pojęcie zmiennej!!
Zmienne w przeciwieństwie do stałych mogą reprezentować różne wartości. Zbiór wartości, jakie może przyjąć zmienna nazywa się jej typem. Nazwa zmiennej występująca w programie powinna być zadeklarowana Deklaracje typu zmiennej występują w bloku opisowym. Zadeklarowana zmienna przybiera różne wartości podczas działania algorytmu.
2) Składnia języka
Składnia języka Pascal nie wymusza podziału programu na wiersze (oprócz deklaracji zmiennych łańcuchowych) i cały program może być dowolnie podzielony na linie. Istotne jest tylko, aby poszczególne słowa kluczowe i identyfikatory (nazwy zmiennych, stałych, funkcji itp.) były oddzielone separatorem (dowolna ilość spacji lub znaku końca wiersza, znak tabulacji, średnik, nawias, +, -, :, =, >, <).
3) Programowanie modularne, jego zalety.
5) wskaźnik, zmienna wskaźnikowa
Wartościami wskaźników są elementy typu wskaźnikowego, które określają adresy pamięci zmiennych dynamicznych.
Zmienna wskaźnikowa – wartości tego typu określają adresy pamięci zmiennych dynamicznych, którym pamięć może być przydzielona i zwalniana w trakcie wykonania programu. Zmienne te są bowiem pamiętane w specjalnym segmencie pamięci o strukturze stosu. W celu odwołania się od zmiennej pewnego typu, z którym związano typ wskaźnikowy, stosuje się zmienne wskaźnikowe postaci zmienna_wskaźnikowa^
6) zadeklaruj tablicę recordów i podaj przykład odwołania się od recordu
7) porównać tablicę z plikiem.
Tablica składa się z ustalonej liczby elementów tego samego typu, zwanego typem składowym (może być typem prostym, łańcuchowym lub strukturalnym). Za pomocą tablic reprezentowane są regularne układy danych np. wektory, macierze.
Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksowania. Indeksem może być dowolne wyrażenie, którego wartość jest zgodna w sensie przypisania z typem indeksowym
Plik jest logicznym modelem fizycznego zbioru danych. Plik jest ciągiem elementów tego samego typu, którego liczba elementów jest zmienna. Dostęp do elementów pliku jest sekwencyjny.
Gr 3
1) Na czym polega kompilacja i interpretacja programów? Porównać zalety i wady obu metod.
2) podaj klasyfikacje typów dostępnych w Turbo Pascalu oraz przykład
każda zmienna występująca w programie posiada swoja nazwę i przyjmuje wartości z określonego zbiory. Zbiór ten nazywa się typem zmiennej.
Klasyfikacja typów:
- typ prosty – za ich pomocą określa się bardziej złożone struktury danych. Typy proste dzielimy na porządkowe i rzeczywiste,
- typy całkowite – są predefiniowane i nie wymagają opisu w programie. Wszystkie typy całkowite są podzbiorami liczb całkowitych. Wśród typów całkowitych wyróżnia się typ ShortInt (liczba całkowita z przedziału –128 ,
Byte (liczby całkowite z przedziału 0 255), Integer ((przedział –32768 do 32767), Word ((przedział 0 do 65535) LongInt (-2147489648 do 2147483647)
3) moduł biblioteczny i jak się z niego korzysta.
Moduł CRT zawiera funkcje i procedury, które pozwalają sterować trybami ekranu, posługiwać się kodami znaków rozszerzonej klawiatury, kolorami i dźwiękiem. Zastosowanie tych funkcji i procedur w programie lub module wymaga deklaracji modułu CRT za pomoc
ą konstrukcji uses.
Zainicjowanie modułu CRT (poprzez jego deklarację) powoduje skojarzenie standardowych plików tekstowych INPUT i OUTPUT z urz
ądzeniem tekstowym CRT (implementowanych przez moduł CRT) .Jego główną funkcją, podobnie jak DOS-owskiego urządzenia CON (konsola), jest łączenie operacji klawiaturowych i ekranowych. W porównaniu jednak z konsolą, urządzenie CRT jest dużo szybsze, a ponadto zapewnia możliwość operowania kolorami i oknami. Zainicjowanie modułu CRT równoważne jest wykonaniu na plikach INPUT i OUTPUT instrukcji:
5) omów działanie procedury NEW().
6) na czym polega sekwencyjny i niesekwencyjny dostęp do pliku?
Dostęp do pliku uzyskuje się za pomocą zmiennej plikowej. Przed użyciem takiej zmiennej powinna być ona skojarzona z fizycznym zbiorem danych.
Assign(zmienna_plikowa, wyrażenie łańcuchowe);
Po skojarzeniu zmiennej plikowej z fizycznym zbiorem danych należy plik otworzyć. Operacja otwarcia pliku ma na celu przygotowanie zmiennej plikowej do wprowadzania/ wyprowadzania poszczególnych elementów.
Do otwarcia pliku służą procedury:
Reset( zmienna_plikowa); otwarcie na początku pliku
Rewrite( zmienna_plikowa); tworzenie nowego pliku (stary usunięty)
Append( zmienna_plikowa); otwarcie na końcu pliku (tylko pliki tekstowe)
Dostęp do pliku uzyskuje się za pomocą zmiennej plikowej. Przed użyciem takiej zmiennej powinna być ona skojarzona z fizycznym
Niesekwencyjny Seek(zmienna_plikowa, pozycja) ustawiająca położenie zbioru na elemencie o określonym numerze.
Truncate(zmienna_plikowa) usunięcie ze zbioru wszystkich elementów pliku od bieżącego do końca.
Sekwencyjny Assign(zmienna_plikowa, wyrażenie łańcuchowe
????????????????????????????????
7) omów działanie i zastosowanie instrukcji podstawiania i złożonej.
Instrukcja podstawiania: słuzy do przypisania zmiennej nowej wartości. Ogólna postać to: odwołanie-do-zmiennej:=wyrażenie lub nazwa-funkcji:=wyrażenie. ..................................................
Begin
Instr1
.........
instr n
end
Gr 4
1) porównaj język niskopoziomowy Assembler z wysokopoziomowym.
2) Omów pojęcie zmiennej, co określa typ zmiennej
Zmienną nazywamy daną, która może przyjmować różne wartości w ramach typu przypisania lub określonego dla tej zmiennej. W TP wszystkie zmienne powinny być zadeklarowane , przy czym odpowiednie deklaracje powinny poprzedzać pierwsze wystąpienia zmiennych. Przechowuje jakąś wartość, posiada własną nazwę (adres w pamięci)
Typy danych – określają zbiór wartości zmiennej, wielkość zajmowanej przez nią pamięci oraz rodzaj operacji jakie można na niej wykonać.
3) omów pojęcie funkcji i sposoby przekazywania parametrów pomiędzy funkcjami, a programem wywoławczym
funkcją (modułem, podprogramem) nazywamy wyodrębnioną część programu, stanowiącą pewną całość, posiadającą jednoznaczną nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu. Posiadają jedno wejście i wyjście. Użycie podprogramu nie wymaga znajomości jego wewnętrznej budowy.
Lista parametrów formalnych zawiera deklaracje parametrów formalnych, określa sposób w jaki poszczególne parametry formalne zostaną zastąpione parametrami aktualnymi podczas wywołania procedury lub funkcji.
Wywołanie funkcji następuje za pomocą podania nazwy funkcji jako argumentu dowolnego wyrażenia. Liczba argumentów i ich typ muszą być zgodne z argumentami formalnymi funkcji.
function tg(x:real):real;
f:=tg(x);
5) Porównaj zmienną znakową z łańcuchem znaków
Zmienna znakowa jest predefiniowanym typem CHAR. Elementem typu zmiennego znakowego są znaki ASCII, z których każdy jest pamiętany w jednym bajcie pamięci.
Zmienna łańcuchu znaków jest typem string.
Typ zmiennej określa zakres wartości jakie może przyjmować zmienna i jakie operacje można na niej wykonać
6) omów pojęcie na przykładzie recordu – sposób deklaracji i użycia w programie.
Rekordem nazywa się złożoną strukturę danych, której składowe, zwane polami, mogą być różnych typów (w szczególności same mogą być typu strukturalnego). Liczba pól rekordu jest ustalona.
Definicja typu rekordowego specyfikuje dla każdego pola jego typ i identyfikator.
type identyfikator_typu = record lista_deklaracji_pól end;
gdzie kazda z deklaracji pól ma postać:
lista_nazw_pól : opis_typu;
a ostatnia deklaracja może mieć postać (deklaracja wariantowa):
case deklaracja_pola_wyróżnikowego of wykaz wariantów;
type data = record
rok : integer;
miesiąc : 1..12;
dzień : 1..31;
var data_ur : data;
7)Omów pojęcie sekwencji oraz zagnieżdzenie w programie strukturalnym.
program nazwa_programu; nagłówek nieobowiązkowy
uses Printer, CRT, Graph;
label lista_etykiet;
const sekwencja_definicji_stałych;
type sekwencja_definicji_typów;
var sekwencja_deklaracji_zmiennych;
Gr 5
1) Omów pojecie programu i języka programowania. Dlaczego stosowane są różne języki programowania.
W celu rozwiązania dowolnego zadania przy wykorzystaniu komputera należy określić skończoną liczbę czynności, które należy wykonać na określonych danych, tj. skonstruować odpowiedni program. Programowanie jest to działanie pozwalające otrzymać algorytm. Algorytm zapisany w języku programowania nazywa się programem, w którym czynności opisane są za pomocą odpowiednich instrukcji języka.
Język programowania jest to formalizowanie narzędzi do zapisu programów w postaci zrozumiałej dla komputera.
Język programowania, wykorzystywany do zapisu dowolnego programu, korzysta ze skończonego zestawu symboli, których znaczenie i sposób użycia jest ściśle określone
..............................
2) Omów poznane operatory.
Operatory – symbole operacji
Ø Operatory arytmetyczne
* – mnożenie
/ – dzielenie
- – odejmowanie
+ – dodawanie
div - dzielenie całkowite
mod - reszta z dzielenia całkowitego
Ø Operatory logiczne Not And Or Xor Shl Shr (przesunięcia, wprowadzane są 0)
Operacje logiczne wykonywane są na zmiennych logicznych lub całkowitych (wówczas na parach bitów).
Ø Operatory relacyjne = <> < > <= >= in (jest elementem)
Ø Operatory teoriomnogościowe + suma zbiorów - różnica zbiorów * iloczyn zbiorów
Ø Operator konkatenacji (połączenie łańcuchów) +
Ø Operator @ - pobranie adresu podanego argumentu i ^ - wskazania przez wskaźnik
...
dploski