Ć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:

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
}