Ćwiczenie 4
Programowanie w języku ANSI C
Zadanie
1
Napisać program, który 3 podane przez
użytkownika liczby całkowite wyświetli w kolejności od
najmniejszej do największej.
#include <stdio.h>
#define ilosc_liczb 10
int main(void)
{
int liczba[ilosc_liczb]; //tablica z liczbami
int i,j; //liczni petli for
int temp;
printf("Podaj %d liczby\n",ilosc_liczb);
//wczytywanie liczb
for(i=0; i<ilosc_liczb ; i++)
scanf("%d",&liczba[i]);
//sortowanie babelkowe
for(i=ilosc_liczb-1; i>=0; i--)
for(j=0; j<i; j++)
if (liczba[j+1]<liczba[j]){
temp=liczba[j];
liczba[j]=liczba[j+1];
liczba[j+1]=temp;
}
//wyswietlenie wynikow
printf("Wprowadzone liczby to: ");
for(i=0;i<ilosc_liczb;i++)
printf("%d, ",liczba[i]);
printf("\n");
system("PAUSE");
return 0;
}
Zadanie
2
Napisać
program, który poinformuje użytkownika odpowiednim komunikatem, czy 3
podane przez niego boki trójkąta należą do trójkąta
prostokątnego. Podane przez użytkownika dane są liczbami
całkowitymi.
#include <stdio.h>
int main(void)
{
int bok[3]; //tablica z bokami trojkata
int prostokatny=0;
int i;
printf("Podaj dlugosc bokow trojkata\n");
//wczytywanie bokow
for(i=0; i<3 ; i++)
scanf("%d",&bok[i]);
//szukanie najdluzszego boku i sprawdzanie trojkata
if (bok[0]>bok[1] && bok[0]>bok[2]){
if (bok[0]*bok[0]==bok[1]*bok[1]+bok[2]*bok[2]) prostokatny=1;
} else if (bok[1]>bok[2]) {
if (bok[1]*bok[1]==bok[0]*bok[0]+bok[2]*bok[2]) prostokatny=1;
} else
if (bok[2]*bok[2]==bok[1]*bok[1]+bok[0]*bok[0]) prostokatny=1;
//wyswietlenie wynikow
printf("Trojkat ");
if (prostokatny==0)
printf("nie ");
printf("jest prostokatny\n");
system("PAUSE");
return 0;
}
Zadanie
3
Napisz
program, który wyświetla informację, czy podana przez
użytkownika liczba jest parzysta.
#include <stdio.h>
int main(void)
{
int liczba;
printf("Podaj liczbe: ");
//wczytywanie liczby
scanf("%d",&liczba);
//wyswietlenie wynikow
if (liczba%2==0)
printf("Liczba jest parzysta\n");
else
printf("Liczba jest nieparzysta\n");
system("PAUSE");
return 0;
}
Funkcje.
Zadanie
4
Napisać
funkcję power
podnoszącą liczbę całkowitą m do potęgi
całkowitej dodatnie n. Przetestować jej działanie w programie.
1.
Wczytać zbiór nagłówkowy standardowej biblioteki wejścia
– wyjścia.
2.
Zdefiniować nagłówek funkcji power
zwracającej wartości całkowite i posiadającej dwa parametry
całkowite.
3.
Napisać funkcję main, który
wyświetli wartości obliczone przy pomocy funkcji power
dla przykładowych parametrów.
4.
Zadeklarować funkcję power
zawierającą następujące elementy:
- deklaracja
zmiennych całkowitych p i i;
- inicjacja
zmiennej p na 1;
- pętla
for, wewnątrz której p będzie n razy mnożone przez
podstawę m;
Funkcja zwraca wyliczoną wartość p.
#include <stdio.h>
int power(int l, int p); //konstruktor funkcji
int main(void)
{
int liczba, potega;
printf("Podaj liczbe: ");
//wczytywanie liczby
scanf("%d",&liczba);
printf("Podaj potege: ");
//wczytywanie potegi
scanf("%d",&potega);
if(potega<0) return -1; //detekcja bledu
//wyswietlenie wynikow
printf("%d^%d=%d\n",liczba,potega,power(liczba,potega));
system("PAUSE");
return 0;
}
//funkcja power
int power(int l, int p) {
int i, pot=1;
for (i=p ; i>0 ; i--)
pot*=l;
return pot;
}
Zadanie
5
Napisać
nową wersję programu przekształcania temperatur z ćwiczenia
2, w której przekształceń tych dokonuje funkcja.
#include <stdio.h>
#define max 50
#define min -50
#define step 10
int temp_C_to_F(int temp_C);
int main(void)
{
int temp_C; //deklaracje zmiennych wymaganych do zadania
for (temp_C=min;temp_C<=max;temp_C+=step) {
printf("Temperatura C = %d , Temperatura F = %d\n", temp_C, temp_C_to_F(temp_C));
}
system("PAUSE");
return 0;
}
//funkcja przeksztalcania temperatury
int temp_C_to_F(int temp_C) {
return (temp_C*9)/5+32;// obliczenie temperatury F
}