Ćwiczenie 2

Programowanie w języku ANSI C

Zmienne i wyrażenia arytmetyczne



Zadanie 1

Napisać program tablicujący zestawienie temperatur Celsjusza i Fahrenheita, wg. zależności C = (5/9) * (F – 32) dla zakresu temperatur -50 – 50 °C z krokiem 10 °C.

1.     Na początku programu wczytać zbiór nagłówkowy standardowej biblioteki wejścia – wyjścia (stdio.h).

2.     Zdefiniować funkcję główną programu.

3.     W funkcji głównej zadeklarować pięć zmiennych całkowitych przechowujących chwilowe wartości temperatury w stopniach Celsjusza i temperatury w stopniach Fahrenheita, oraz wartości graniczne i krok zmian temperatury Celsjusza.

4.     Zainicjować wartości zmiennych granicznych na –50, +50 oraz skoku na 10.

5.     Zainicjować wartość temperatury w stopniach Celsjusza równą wartości początkowej.

6.     Stworzyć pętle while, która będzie wykonywana dopóki wartość temperatury w stopniach Celsjusza nie przekroczy maksymalnej dopuszczalnej wartości granicznej. Wewnątrz pętli będą wykonywane następujące operacje:

7.     Program uzupełnić komentarzami.


#include <stdio.h>

int main(void)
{
   int temp_C, temp_F, step=10, max=50, min=-50; //deklaracje zmiennych wymaganych do zadania

   temp_C=min; //warunek początkowy
   while (temp_C<=max) { //warunek koncowy
      temp_F=(temp_C*9)/5+32; // obliczenie temperatury F
      printf("Temperatura C = %d , Temperatura F = %d\n", temp_C, temp_F);
      temp_C+=step;
   }

   system("PAUSE");
   return 0;
}


Zadanie 2

Zmodyfikować program z zadania 1, tak aby operował on na zmiennoprzecinkowych wartościach temperatur Celsjusza i Fahrenheita oraz wypisywał nagłówek zestawienia.


#include <stdio.h>

int main(void)
{
   float temp_C, temp_F, step=10.0, max=50.0, min=-50.0; //deklaracje zmiennych wymaganych do zadania

   temp_C=min; //warunek początkowy
   while (temp_C<=max) { //warunek koncowy
      temp_F=(temp_C*9)/5+32; // obliczenie temperatury F
      printf("Temperatura C = %.2f , Temperatura F = %.2f\n", temp_C, temp_F);
      temp_C+=step;
   }

   system("PAUSE");
   return 0;
}


Instrukcja for

Zadanie 3

Napisać program tablicujący zestawienie temperatur Celsjusza i Fahrenheita, wg. zależności C = (5/9) * (F – 32) dla zakresu temperatur -50 – 50 °C z krokiem 10 °C, wykorzystując instrukcję iteracyjną pętlę for.

1.     Na początku programu wczytać zbiór nagłówkowy standardowej biblioteki wejścia – wyjścia (stdio.h).

2.     Zdefiniować funkcję główną programu.

3.     W funkcji głównej zadeklarować zmienną przechowująca wartości chwilowe temperatury Celsjusza.

4.     Stworzyć pętle for inicjująca wartość zadeklarowanej zmiennej na wartość minimalną temperatury, wykonywaną dopóki temperatura nie przekroczy wartości maksymalnej oraz w każdym kroku zmieniającą wartość temperatur o zadany krok.

5.     Wewnątrz pętli będzie wykonywana operacja: wyświetlenie na ekranie linii zawierającej temperaturę Celsjusza i odpowiadającą jej temperaturę Fahrenheita.

6.     Program uzupełnić komentarzami.


#include <stdio.h>

int main(void)
{
   int temp_C, temp_F, step=10, max=50, min=-50; //deklaracje zmiennych wymaganych do zadania

   for (temp_C=min;temp_C<=max;temp_C+=step) {
      temp_F=(temp_C*9)/5+32; // obliczenie temperatury F
      printf("Temperatura C = %d , Temperatura F = %d\n", temp_C, temp_F);
   }

   system("PAUSE");
   return 0;
}


Zadanie 4

Zmodyfikować program z zadania 3, tak aby wypisywał zestawienie temperatur w odwrotnej kolejności, tj. od wartości maksymalnej do wartości minimalnej.


#include <stdio.h>

int main(void)
{
   int temp_C, temp_F, step=10, max=50, min=-50; //deklaracje zmiennych wymaganych do zadania

   for (temp_C=max;temp_C>=min;temp_C-=step) {
      temp_F=(temp_C*9)/5+32; // obliczenie temperatury F
      printf("Temperatura C = %d , Temperatura F = %d\n", temp_C, temp_F);
   }

   system("PAUSE");
   return 0;
}


Stałe symboliczne

Zadanie 5

Zmodyfikować program z zadania 3, tak aby wartości graniczne temperatury Celsjusza oraz jej wartości kroku były deklarowane za pomocą stałych symbolicznych.


#include <stdio.h>
#define max 50
#define min -50
#define step 10

int main(void)
{
   int temp_C, temp_F; //deklaracje zmiennych wymaganych do zadania

   for (temp_C=min;temp_C<=max;temp_C+=step) {
      temp_F=(temp_C*9)/5+32; // obliczenie temperatury F
      printf("Temperatura C = %d , Temperatura F = %d\n", temp_C, temp_F);
   }

   system("PAUSE");
   return 0;
}

Opracowano na podstawie: B. W. Kernighan, D. M. Ritchie „Język Ansi C”, Wydawnictwa Naukowo - Techniczne, Warszawa, 2003.