[WikiDyd] [TitleIndex] [WordIndex

Języki i metodyka programowania

Przykłady z wykładów w semestrze jesiennym 2011

Wykład I, 4 października 2011

Mówiliśmy o strukturze programu w jęz. C: program składa się z funkcji, jest przynajmniej jedna - main, argumenty tej funkcji to nazwa programu i napisy podane w linii uruchamiającej polecenie.

   1 #include <stdio.h>
   2 
   3 int main( int argc, char *argv[] )
   4 {
   5         int i;
   6 
   7         for( i = 1; i < argc; i++ )
   8                 printf( "%s\n", argv[i] );
   9 
  10         return 0;
  11 }

Program kompilujemy przy pomocy polecenia cc <nazwa-pliku-z-programem>, plik zawierający program musi mieć rozszerzenie .c, w wyniku kompilacji powstaje plik a.out, który możemy uruchomić:

jstar-lap:~/jimp/w1> cc p1.c 
jstar-lap:~/jimp/w1> ./a.out 
jstar-lap:~/jimp/w1> ./a.out ala ma kota
ala
ma
kota
jstar-lap:~/jimp/w1> 

Napisy mogą byc zamieniane na liczby przy pomocy funkcji atof:

   1 #include <stdio.h>
   2 #include <stdlib.h>
   3 
   4 int main( int argc, char *argv [] )
   5 {
   6         double s= 0;
   7         int i;
   8 
   9   for( i= 1; i < argc; i++ ) {
  10                 double x= atof( argv[i] );
  11                 s += x;
  12         }
  13 
  14         printf( "%g\n", s );
  15 
  16         return 0;
  17 }

jstar-lap:~/jimp/w1> cc p2.c 
jstar-lap:~/jimp/w1> ./a.out 1 2 3
6
jstar-lap:~/jimp/w1> ./a.out .5 .3
0.8
jstar-lap:~/jimp/w1>

Program może się składać z więcej niż jednej funkcji:

   1 #include <stdio.h>
   2 #include <stdlib.h>
   3 
   4 double suma( double v[], int n ) {
   5         double s= 0;
   6         int i;
   7         for( i= 0; i < n; i++ )
   8                 s += v[i];
   9 
  10         return s;
  11 }
  12 
  13 int main( int argc, char *argv [] )
  14 {
  15         int i;
  16   double t[100];
  17 
  18   for( i= 1; i < argc; i++ ) {
  19                 double x= atof( argv[i] );
  20                 t[i-1]= x;
  21         }
  22 
  23         printf( "%g\n", suma( t, argc-1 ) );
  24 
  25         return 0;
  26 }

Przy kompilacji możemy zażyczyć sobie, aby plik wykonywalny nazywał się inaczej, niż a.out:

jstar-lap:~/jimp/w1> cc p3.c -o sum
jstar-lap:~/jimp/w1> ./sum 1 2 3 4
10
jstar-lap:~/jimp/w1> ./sum .1 .2 .3 .4
1
jstar-lap:~/jimp/w1>

2015-09-23 06:44