Lab 05 Wprowadzenie do jezyka C

background image

05

Metodyka i techniki programowania
Wprowadzenie do języka C
mgr inż. Wojciech Szmuc

2007-11-05

Uwagi wstępne.

Programy pisane na obecnych oraz późniejszych 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 <stdio.h>

/* 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

.

Sprawdź 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.

Sprawdź działanie programu.
Co należałoby zmienić aby program działał poprawnie?

2. W analogiczny sposób przetestuj pozostałe operatory arytmetyczne.

background image

Ć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);

Sprawdź 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. Wskaźniki

Wskaźnik 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);

Sprawdź działanie programu.

2. Zmodyfikuj program tak, aby operację mnożenia (przy podnoszeniu do kwadratu)

wykonywał przy użyciu wskaźnikó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:
Wprowadzenie do języka XML
Lab 01 Wprowadzenie do systemu UNIX
Linux asm lab 07 (Wprowadzenie do Linux'a i Asemblera )
Lab 01 Wprowadzenie do systemu UNIX
05 Wprowadzenie do metodyki RUP
Wprowadzenie do jezyka C, Tutoriale, Programowanie
Lab 01 Wprowadzenie do systemu UNIX
IBM AIR 2012 04 05 Wprowadzenie do IPv6 v6 studenci
lab 1 01 wprowadzenie do mathcada 1 3
5 Wprowadzenie do języka C# i środowiska programistycznego (prezentacja)
Wprowadzenie do języka XML
Wprowadzenie do jezyka Java Przewodnik krok po kroku
Wprowadzenie do Zemsty A. Fredry - lekcja języka polskiego w kl. I, szkoła, kompetencje, Testy różne
ESPERANTO Wprowadzenie do nauki języka międzynarodowego
kurs wprow.cz.prakt.2008, Znieczulenie, Wykłady-Wprowadz. do spcjalizacji w anestezjologii i int.ter
wprowadzenie 24-05-09, Wprowadzenie do psychologii

więcej podobnych podstron