Lab 05 Wprowadzenie do jezyka C


2007-11-05
Metodyka i techniki programowania
Wprowadzenie do języka C
05
mgr inż. Wojciech Szmuc
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 zajecia5
2. Stwórz w nim plik witaj.c zawierający:
/* Program wypisuje "Witaj!" */
#include /* wskazanie pliku naglowkowego biblioteki */
main() /* glowna funkcja programu */
{ /* poczatek bloku instrukcji */
printf("Witaj!"); /* wypisanie tekstu "Witaj!" */
printf("\n"); /* przejscie do nowej linii */
} /* 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 linijkę zawierającą stdio.h.
Spróbuj teraz skompilować program.
Zwróć uwagę na różne komunikaty w zależności od zasięgu komentarza
(/* ... */ /* ... */ wobec /* ... /* ... */ */).
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 */
unsigned aKrotka1, aKrotka2; /* zmienne calkowite, nieujemne */
aKrotka1=(unsigned)&krotka1; /* operacja rzutowania (uzgodnienie typu) */
aKrotka2=(unsigned)&krotka2; /* adresu */
printf("Zmienna \"krotka1\" - wartosc: %d, adres: %u", krotka1, aKrotka1);
printf("\n");
printf("Zmienna \"krotka2\" - wartosc: %d, adres: %u", krotka2, aKrotka2);
printf("\n");
printf("Wielkosc typu \"short\": %u", aKrotka1-aKrotka2);
Sprawdz działanie programu  z czego ono wynika?
2. Dopisz kod, który obliczy rozmiar zajmowany w pamięci przez inne typy danych.
3. 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.
4. Na podstawie przykładu z punktu 3. zmodyfikuj program wykorzystujący operatory
arytmetyczne tak, aby możliwe było wpisanie argumentów działań.
Ć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 obecny
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

Podobne podstrony:
Lab Wprowadzenie do jezyka C
Lab Wprowadzenie do systemu UNIX
Lab Wprowadzenie do systemu UNIX
5 Wprowadzenie do języka C# i środowiska programistycznego (prezentacja)
lab 1 01 wprowadzenie do mathcada 1 3
ESPERANTO Wprowadzenie do nauki języka międzynarodowego
Linux asm lab 07 (Wprowadzenie do Linux a i Asemblera )
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
Medycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczenie
01 Wprowadzenie do programowania w jezyku C
wprowadzenie do buddyzmu z islamskiego punktu widzenia
1 wprowadzenie do statystyki statystyka opisowa

więcej podobnych podstron