Zajęcia 2 - Proste programy w języku C (printf, scanf, pętle, warunki)
Wczytywanie i wyświetlanie liczb
#include <stdio.h> /* program wczytuje i wyswietla wartosc podanej liczby calkowitej */ int main() { int liczba; //deklarowanie zmiennej printf("Podaj liczbe: "); scanf("%d",&liczba); printf("Podales liczbe %d \n",liczba); return 0; }
Ćwiczenia
- Zmodyfikuj program tak aby po wczytaniu dwóch liczb całkowitych wyświetlił ich sumę (+), różnicę (-), iloczyn (*), iloraz (/), wartość dzielenia modulo (%).
- Zmień program tak aby działał dla liczb rzeczywistych (bez operacji modulo (%), która może być wykonana tylko dla liczb całkowitych)
- spróbuj zmienić formatowanie wyświetlanych liczb aby dla podanych liczb 1 i 3 program wyświetlił komunikat zbliżony do
1.0 + 3.0 = 4.00
1.0 - 3.0 = -2.00 1.0 * 3.0 = 3.00 1.0 / 3.0 = 0.33
Warunek if
#include <stdio.h> /* program sprawdza czy podana liczba jest dodatnia czy ujemna */ int main() { int liczba; printf("Podaj liczbe: "); scanf("%d",&liczba); if( liczba > 0 ) printf("Liczba %d jest wieksza od zera\n",liczba); else printf("Liczba %d jest mniejsza od zera\n",liczba); return 0; }
Ćwiczenia
- Dopisz do programu z pierwszego ćwiczenia zabezpieczenie przed wykonaniem operacji dzielenia przez zero.
Pętla while
#include <stdio.h> /* program wyswietla sekwencje liczb calkowitych od 1 do podanej przez uzytkownika wartosci */ int main() { int liczba; int i = 0; printf("Podaj liczbe: "); scanf("%d",&liczba); while(i <= liczba) { printf("%d\n",i); i = i + 1; } return 0; }
Ćwiczenia
- Zmodyfikuj powyższy program tak aby wczytywał 3 liczby rzeczywiste określając początek, koniec i krok wyświetlanej sekwencji liczb.
Zmienne, typy i ich rozmiary - operator sizeof()
#include<stdio.h> int main() { char znak; znak = 'A'; printf("rozmiat typu char %d\n",sizeof(znak)); printf("rozmiat typu float %d\n",sizeof(float)); return 0; }
Ćwiczenia
- Sprawdź za pomocą operatora
sizeof
ile bajtów zajmują w pamięci następujące typy: unsigned char, int, short, double, long double, wskaźnik *int, wskaźnik *void, tablica 10 elementów typu int, macierz typu float o wymiarach 2×5, tablica typu char zainicjowana wartościami{'j','p','r'}
, tablica char zainicjowana napisem„jpr”
.
Zakres zmiennych
#include<stdio.h> int main() { short liczba = 32767; printf("liczba = %d\n",liczba); liczba = liczba + 1; printf("liczba + 1 = %d\n",liczba); return 0; }
Ćwiczenia
- Napisz program wyznaczający największą możliwą liczbę poprawnie reprezentowaną przez typ int i float. Dla typu float znajdź także najmniejszą możliwą liczbę większą od zera. Wygrywa program, który najbardziej zbliży się do poprawnej odpowiedzi w jak najkrótszym czasie.
Formatowanie wyjścia - printf()
#include<stdio.h> int main() { char znak='J'; float liczba = 1/3.0f; printf("znak = %c\nznak (dziesietnie) = %d\nznak (szestnastkowo) = %x\nznak (osemkowo) = %o\n",znak,znak,znak,znak); printf("liczba = %f\n",liczba); printf("liczba = %.1f\n",liczba); printf("liczba = %10.2f\n",liczba); printf("liczba = %e\n",liczba); printf("liczba = %d\n",liczba); return 0; }
Ćwiczenia
- wyświetl tablicę znaków ASCII poczynając od znaku SPACE (32) do znaku DEL (127) wraz z odpowiednimi wartościami liczbowymi w systemie dziesiętnym, szesnastkowym i ósemkowym.
Zadania domowe
- Program wczytuje kolejne liczby rzeczywiste aż do momentu gdy użytkownik poda wartość 0, po czym wyświetla sumę , średnią oraz wartość minimalną i maksymalną dla wprowadzonych liczb.
- Program który dla podanej podstawy i wykładnika oblicza potęgę. Dla uproszczenia przyjmujemy, że wykładnik jest liczbą całkowitą.
- Program wyświetlający wartość silni z podanej przez użytkownika liczby całkowitej.
- Program wyświetlający tabliczkę mnożenia, której rozmiar ustalany jest przez użytkownika.