Lab 03 Wprowadzenie do jezyka C


2011-10-15
Metodyka i techniki programowania
Wprowadzenie do języka C
mgr inż. Wojciech Szmuc
Weryfikacja: Jakub Palider
Uwagi wstępne
Programy pisane na obecnych oraz pózniejszych zajęciach należy formatować zgodnie z
przedstawionymi niżej przykładami. Komentarze do kodu (znajdujące się pomiędzy znakami /* oraz */)
należy umieszczać w miarę pisania programu. Powinny one zawierać informacje o działaniach
opisywanego fragmentu funkcjonalności. Przedstawione niżej przykłady są zbyt szczegółowo
komentowane co związane jest z faktem, że są to zajęcia wprowadzające. W praktyce wystarczyłaby
informacja umieszczana na samym początku pliku.
Ćwiczenie 1. Pierwszy Program
1. Utwórz katalog zajecia3
2. Stwórz w nim plik witaj.c zawierający:
/* Program wypisuje "Witaj!" */
#include /* wskazanie pliku naglowkowego biblioteki */
int main() /* glowna funkcja programu */
{ /* poczatek bloku instrukcji */
printf("Witaj!"); /* wypisanie tekstu "Witaj!" */
printf("\n"); /* przejscie do nowej linii */
return 0; /* wyjscie z funkcji, z wartoscia 0 */
} /* koniec bloku instrukcji */
Zwróć uwagę na przesunięcie (wcięcie) wywołań funkcji printf(). związane z umieszczeniem ich
wewnątrz bloku ograniczonego znakami { oraz }.
3. Spróbuj skompilować program: gcc witaj.c
4. Wylistuj zawartość katalogu.
5. Uruchom stworzony program. ./a.out
6. Skompiluj program w następujący sposób: gcc witaj.c -o witaj.
Sprawdz zawartość katalogu.
Spróbuj uruchomić nowo powstały plik.
7. Zakomentuj (umieść wewnątrz komentarza) linijkę zawierającą stdio.h.
Spróbuj teraz skompilować program.
8. Spróbuj skompilować program z opcją -nodefaultlibs
Zadanie
Napisz program wyświetlający:
__ __ ________
| | / / |__ __|
| |/ / | |
| |\ \ | |
|__| \__\ |__|
Ćwiczenie 2. Zmienne oraz operatory arytmetyczne
1. Stwórz plik zawierający:
float rzeczywista1=2/3, rzeczywista2=-2.3; /* definicja oraz inicjalizacja */
/* zmiennych typu rzeczywistego */
printf("rzeczywista1=%f", rzeczywista1); /* wyswietlenie zmiennej */
/* "rzeczywista1" */
printf("\n");
printf("rzeczywista2=%5.2f", rzeczywista2); /* 5 pozycji w tym 2 po kropce */
printf("\n");
printf("rzeczywista1+rzeczywista2=%f", rzeczywista1+rzeczywista2);
oraz inne elementy konieczne do prawidłowej kompilacji.
Sprawdz działanie programu.
Co należałoby zmienić aby program działał poprawnie?
2. W analogiczny sposób przetestuj pozostałe operatory arytmetyczne.
Ćwiczenie 3. Adresy
Adres zmiennej jest liczbą określającą indeks pierwszego bajtu zarezerwowanego dla danej zmiennej
w pamięci. Nie można zmienić adresu zmiennej  jest to w pewnym sensie stały (niezmienny w czasie
działania programu) atrybut (cecha) zmiennej.
1. Zaimplementuj kod:
short krotka1=12345, krotka2=54321; /* zmienne calkowite o malym zakresie */
printf("Zmienna \"krotka1\" - wartosc: %hi, adres: %p", krotka1, &krotka1);
printf("\n");
printf("Zmienna \"krotka2\" - wartosc: %hi, adres: %p", krotka2, &krotka2);
printf("\n");
Sprawdz działanie programu  z czego ono wynika?
2. Na odstawie różnicy adresów oblicz rozmiar pamięci zarezerwowany dla zmiennej.
3. Analogicznie sprawdz rozmiary zmiennych innych typów.
4. Przepisz poniższy kod:
float rzeczywista;
printf("Wpisz liczbe: ");
scanf("%f", &rzeczywista); /* przekazanie adresu zmiennej jako */
/* argument funkcji wczytujacej */
printf("Kwadrat tej liczby wynosi: %f\n", rzeczywista*rzeczywista);
skompiluj oraz uruchom.
5. Na podstawie przykładu z punktu 4. zmodyfikuj program wykorzystujący operatory arytmetyczne
tak, aby możliwe było wpisanie argumentów działań po uruchomieniu programu.
Ćwiczenie 4. Wskazniki
Wskaznik jest zmienną przechowującą adres pewnego elementu. Ponieważ jest to zmienna można
zmienić jej wartość tak aby wskazywała na inny adres (element).
1. W programie podnoszącym do kwadratu dopisz po definicji zmiennej rzeczywista:
float *wRzeczywista=&rzeczywista; /* definicja wskaznika oraz przypisanie */
/* adresu, ktory jest wskazywany */
Zauważ, że w tym przypadku zapisywany jest adres a nie jego wartość liczbowa (brak rzutowania).
Następnie zmodyfikuj linijkę odpowiedzialną za pobranie wartości:
scanf("%f", wRzeczywista);
Sprawdz działanie programu.
2. Zmodyfikuj program tak, aby operację mnożenia (przy podnoszeniu do kwadratu) wykonywał
przy użyciu wskazników.
Zadanie
Napisz program, który pobierze czas rozpoczęcia zajęć, czas trwania zajęć oraz bieżący czas i na tej
podstawie wyliczy ilość czasu jaka pozostała do końca zajęć. Wynik powinien być przedstawiony w
postaci procentowej jak również w postaci liczby pozostałych minut.


Wyszukiwarka