Zad 1 – Scharakteryzuj poznane języki programowania:
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ń.
§ Czytelna budowa,
§ Łatwość wykrycia błędu,
Zad 2 – Co to jest wyrażenie i 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.
np. 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ą.
Zad 3 – Czym się różni procedura od funkcji:
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).
Zad 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
Zad 6 – podaj przykład recordu, którego polem jest: a) record b)tablica:
a) var uczen,prymus:osoba;
b) type osoba = record
nazwisko, imie : string[20];
wiek : byte;
dzieci: array [1..10] of data;
end;
Zad 7 – omów instrukcję złożoną, warunkową oraz wyboru (schemat blokowy):
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
Zad 1 – Omów 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.
Zad 2 – Omów składnię języka, sposób przedstawiania składni języka:
Składnia języka – jest to zbiór reguł lub formuł, które opisują zbiór formalnie poprawnych konstrukcji językowych.
Składnia wymaga deklaracji zmiennych łańcuchowych. Istotne jest aby poszczególne słowa kluczowe i identyfikatory były oddzielone separatorami.
Zad 3 – Programowanie modularne, jego zalety:
J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J
Zad 5 Wskaźnik, zmienna wskaźnikowa:
Wskaźnik – jest adresem, liczbą opisująca położenie zmiennej w pamięci.
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^
Zad 6 – zadeklarować tablicę recordów i podać przykład odwołania się do recordu:
program xxx;
cons N=30;
type osoba = record
nazwisko, imie : strng [20];
srednia : real;
type osoba = array [1..N] of osoba;
var klasa : osoba;
prymus : osoba;
i : integer;
.....
if klasa[1].srednia>prymus.srednia then prymus:=klasa[i];
Zad 7 – Porównać tablicę z plikiem:
Tablica składa się z ustalonej liczby elementów tego samego typu, zwanego typem. 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
Zad 1 – Na czym polega kompilacja i interpretacja programów? Porównaj zalety i wady.
Kompilacja służy do przetłumaczenia tekstu źródłowego, programu, modułu lub biblioteki łączonej dynamicznie na język wewnętrzny komputera. Po przetłumaczeniu programu w zintegrowanym systemie programowania jego kod wynikowy może być przechowywany w pamięci operacyjnej lub na dysku.
Zad 2 – Podaj klasyfikację typów w TP i podaj przykłady definicji typu użytkownika.
q prosty
§ porządkowy
Ø całkowity shortInt, Byte, integer, Word, LongInt
Ø logiczny Boolean, LongBool, ByteBool
Ø znakowy Char
Ø okrojony type identyfikator_typu=stała..stała;
Ø wyliczeniowy type identyfikator_typu=(lista_identyfikatorów);
§ rzeczywisty Real, Single,
q łańcuchowy type identyfikator_typu = string [rozmiar];
q strukturalny
§ tablicowy type identyfikator_tyu=array[typy_indeksowe] of typ_składniowy
§ rekordowy type identyfikator_typu=record / lista_deklaracji_pól / end;
§ zbiorowy type identyfikator_typu= set of typ_porządkowy;
§ plikowy type identyfikator_typu=file;
q obiektowy type identyfikator_typu=obiekt / listadeklaracji_pól / lista deklaracji metod/
q wskaźnikowy type identyfikator_typu=^identyfikator_typu_bazowego;
Moduł biblioteczny czyli zasobnik procedur, funkcji, zmiennych, stałych itd.. Pascalową formą bibliotek, którą wykorzystuje kompilator jest właśnie ten moduł. Jest to zbiór skopiowanych procedur, funkcji i innych obiektów, zajmujących się pewną konkretną dziedziną. Wykożystanie modułu bibliotecznego następuje poprzez wpisanie słowa uses_nazwa_modułu.
Zad 5 – Na czym polega działanie procedury new()
Procedura new() służy do tworzenia zmiennej dynamicznej i posiada postać new(wskaźnik_do_zmiennej)
Ta procedura może służyć użytkownikowi np. do utworzenia zmiennej wskaźnikowej, buforu, tworzenia łańcuchów dynamicznych lub przydzielania kolejnych blików.
Zad 6 – Na czym polega sekwencyjny i niesekwencyjny dostęp do pliku
J
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. ..................................................
GR 4
Zad1 - porównaj język niskopoziomowy Assembler z wysokopoziomowym.
Zad 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 zmiennej – określają zbiór wartości danej, wielkość zajmowanej przez nią pamięci oraz rodzaj operacji jakie można na niej wykonać.
Zad 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);
Zad 5 - Porównaj zmienną znakową z łańcuchem znaków
Zmienna znakowa jest predefiniowanym typem CHAR. Elementem typu zmiennego łańcuchowego sa znaki ASCII, z których każdy jest pamiętany w 1ym bajce pamięci.
Zmienna znakowa jest typem string. Typ tej zmiennej określa zakres wartości jakie może przyjmować zmienna i jakie operacje można na niej wykonać.
Łańcuch znaków jest typem CHAR., wartość tą ujmuje się w apostrofy. Każdy zna z łańcucha zapisany jest w polu o szerokości 1, a dla łańcuchów w polu o serokości równej liczbie znaków w łańcuchu.
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;
Zad 7 - Omów pojęcie sekwencji oraz zagnieżdzenie w programie strukturalnym.
program...
dploski