Sprawozdanie Lab02PP

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Politechnika morska – Wydział informatyki

Paradygmaty Programowania- Lab02 Student: Aleksandra Rogalska Grupa:L05

Zadanie 1
a)Co to jest zmienna ?
Zmienna to obszar pamięci, w którym przechowywane są dane. Zmienna może
przyjmować różne wartości i może być modyfikowana w trakcie działania
programu. Każda zmienna ma określony typ danych, który definiuje jej działanie i
sposób przechowywania wartości. Zmienne są podstawowym elementem
programowania i umożliwiają manipulację oraz przetwarzanie danych w
programach komputerowych.

b)Jakie języki programowania używają


typowania zmiennych(statycznego lub
dynamicznego), a jakie nie ?
Języki programowania, które używają typowania zmiennych, mogą stosować
typowanie statyczne (gdzie typ zmiennej jest określany podczas kompilacji) lub
dynamiczne (gdzie typ zmiennej jest określany podczas działania
programu).Przykłady języków programowania stosujących typowanie zmiennych:
1. Typowanie statyczne: Java, C++, C#
2. Typowanie dynamiczne: Python, JavaScript, Ruby
Natomiast języki programowania, które nie wymagają określania typu zmiennych,
to na przykład:
1. Języki interpretowane: Lisp, Scheme
2. Języki funkcyjne: Haskell, Scala
c)Czy typowanie zmiennych to wada czy
zaleta ?
Typowanie zmiennych może być zarówno wadą, jak i zaletą, w zależności od
kontekstu i potrzeb programisty.
Zalety typowania zmiennych:
1. Bezpieczeństwo: Typowanie zmiennych pomaga zapobiegać błędom związanym
z nieprawidłowym typem danych, co może prowadzić do awarii programu.
2. Czytelność kodu: Dzięki określeniu typu zmiennej, programista może łatwiej
zrozumieć kod i przewidywać, jakie wartości można do niej przypisać.
3. Optymalizacja: Compiler może optymalizować kod, gdy typ zmiennej jest znany,
co może przyspieszyć działanie programu.
Wady typowania zmiennych:
1. Mniejsza elastyczność: W językach silnie typowanych konieczne jest
deklarowanie typu zmiennej, co może prowadzić do ograniczenia elastyczności
kodu i komplikacji w przypadku zmiany typu danych.
2. Większa ilość kodu: Deklaracje typów zmiennych mogą zwiększać ilość kodu,
co może prowadzić do zwiększonego czasu potrzebnego na pisanie i utrzymanie
kodu.
3. Trudność w przyswajaniu: Dla początkujących programistów może być
trudniejsze zrozumienie konceptu typowania zmiennych i jego zastosowania.
W zależności od projektu i preferencji programisty typowanie zmiennych może
zostać uznane za wadę lub zaletę. Dla jednych będzie to narzędzie zapewniające
bezpieczeństwo i czytelność kodu, dla innych zbędną komplikację i ograniczenie
elastyczności.

d)Czym różni się typowanie dynamiczne od


twardego ?
Typowanie dynamiczne i twarde są dwoma różnymi podejściami do typowania
zmiennych w językach programowania.
1. Typowanie dynamiczne:
- W typowaniu dynamicznym, typ zmiennej jest określany podczas działania
programu, a nie w trakcie kompilacji.
- Zmienne w językach z typowaniem dynamicznym mogą zmieniać swoje typy w
trakcie wykonywania programu.
- Dzięki typowaniu dynamicznemu programista nie musi określać typu danej
zmiennej, co może skracać czas potrzebny na pisanie kodu.
2. Typowanie twarde:
- W typowaniu twardym, typ każdej zmiennej musi być określony podczas
deklaracji zmiennej.
- W językach z typowaniem twardym, kompilator będzie zgłaszał błędy w
momencie, gdy typ zmiennej nie zgadza się z oczekiwanym typem.
- Typowanie twarde jest bardziej rygorystyczne i może pomóc unikać błędów w
kodzie związanych z typami zmiennych.
Podsumowując, główną różnicą między typowaniem dynamicznym a twardym jest
moment określenia typu zmiennej - w przypadku dynamicznego dzieje się to
podczas działania programu, a w przypadku twardego w momencie deklaracji
zmiennej.

e)Jakie są zasady tworzenia nazw zmiennych w


języku C++ ?Jakie zapisy są dozwolone, a jakie
zabronione lub zarezerwowane ?
W języku C++ nazwy zmiennych muszą spełniać następujące zasady:
1. Nazwa zmiennej może zawierać litery, cyfry oraz znak podkreślenia.
2. Nazwa musi zaczynać się literą lub znakiem podkreślenia.
3. Nazwa nie może zaczynać się od cyfry.
4. Wielkość liter jest rozróżniana, więc nazwa zmiennych jest case-sensitive.
5. Długość nazwy zmiennej jest ograniczona jedynie przez kompilator.
6. Nie można używać zarezerwowanych słów kluczowych, takich jak "int", "char",
"for", "while" jako nazw zmiennych.
Przykłady poprawnych nazw zmiennych:
int liczba;
float suma_koncowa;
double SredniaOceny;
Przykłady niepoprawnych nazw zmiennych:
3pierwsza; -zaczyna się od cyfry
float suma końcowa; - zawiera spacje
double #liczba; -zawiera niedozwolony znak #

f)Podaj przykłady 5 nazw zmiennych


korzystając z notacji węgierskiej.
1. strNazwaKlienta (string)
2. szLiczbaElementow (size_t)
3. bCzyZalogowany (bool)
4. nNumerIndeksu (int)
5. fWagaProduktu (float)

Zadanie 2
1. Zasada działania poszczególnych instrukcji:
2. sekwencja - instrukcje są wykonywane po kolei, od góry do dołu programu.
3. wprowadzanie danych - użytkownik podaje wartość zmiennej x.
4. warunek - sprawdzamy czy x jest większy od zera.
5. wybór - w zależności od wartości x obliczamy wartość zmiennej y.
6. iteracja - pętla wykonuje się y razy, dodając do zmiennej z wartość iteracji.
7. pętla - zmienna i przyjmuje wartości od 0 do y-1.
8. wyprowadzanie danych - wypisujemy wynik działania z.

Kod jest w pliku cpp.zadanie2lab02


Zadanie 3
Notacja Backus-Naur (BNF) jest formalnym sposobem opisu składni języka
programowania lub innych formalizowanych języków. Elementy zapisu w notacji
BNF to:

1. <symbol> - symbol nieterminalny

2. "text" - stały element tekstu

3. | - alternatywa

4. [ ] - opcjonalny fragment

5. { } - powtórzenie dowolnej ilości razy

a) Zmienna C++ typu unsigned int w notacji BNF:

<unsigned int> ::= "unsigned int"

b) Zmienna C++ typu float w notacji BNF:

<float> ::= "float"

c) Kod pocztowy w Polsce (np. 12-345) w notacji BNF:

<postal code> ::= <digit><digit>"-"<digit><digit><digit>

d) Adres IPv4 (np. 192.168.1.1) w notacji BNF:

<IPv4 address> ::=


<digit><digit><digit>"."<digit><digit><digit>"."<digit><digit><digit>"."<digit><
digit><digit>

You might also like