Prat St R10 Horiz


P-1

/* dni_m1.c -- wyswietla liczbe dni w kazdym z miesiecy */

#include <stdio.h>

#define MIESIACE 12

int main(void)

{

int dni[MIESIACE] = {31,28,31,30,31,30,31,31,30,31,30,31};

int index;

for (index = 0; index < MIESIACE; index++)

printf("Miesiac %d ma %d dni.\n", index +1,

dni[index]);

return 0;

}

P2

/* brak_dan.c -- niezainicjalizowane tablice */

#include <stdio.h>

#define ROZMIAR 4

int zewntab[ROZMIAR]; /* niezainicjalizowana tablica zewnetrzna */

int main(void)

{

static int statab[ROZMIAR]; /* niezainicjalizowana tablica statyczna */

int autab[ROZMIAR]; /* niezainicjalizowana tablica automatyczna */

int i;

printf("%2s%10s%10s%10s\n",

"i", "zewntab", "statab", "autab");

for (i = 0; i < ROZMIAR; i++)

printf("%2d%10d%10d%10d\n", i, zewntab[i],

statab[i], autab[i]);

return 0;

}

P3

/* troch_dan.c -- czesciowo zainicjalizowane tablice */

#include <stdio.h>

#define ROZMIAR 4

int zewntab[ROZMIAR] = {1956, 1966};

int main(void)

{

static int statab[ROZMIAR] = {-50, -90};

int autab[ROZMIAR] = {492, 567};

int i;

printf("%2s%10s%10s%10s\n",

"i", "zewntab", "statab", "autab");

for (i = 0; i < ROZMIAR; i++)

printf("%2d%10d%10d%10d\n", i, zewntab[i],

statab[i], autab[i]);

return 0;

}

P4

/* dni_m2.c -- liczba elementow jest obliczana przez kompilator */

#include <stdio.h>

int main(void)

{

int dni[] = {31,28,31,30,31,30,31,31,30,31};

int index;

for (index = 0; index < sizeof dni / sizeof (int); index++)

printf("Miesiac %d ma %d dni.\n", index +1,

dni[index]);

return 0;

}

P5

/* wsk_dod.c -- dodawanie do wskaznikow */

#include <stdio.h>

#define ROZMIAR 4

int main(void)

{

short daty[ROZMIAR], * ptc, index;

double oplaty[ROZMIAR], * ptz;

ptc = daty; /* przypisuje adres tablicy wskaznikowi */

ptz = oplaty;

printf("%25s %10s\n", "short", "double");

for (index = 0; index < ROZMIAR; index ++)

printf("wskazniki + %d: %10p %10p\n",

index, ptc + index, ptz + index);

return 0;

}

P6

/* dni_m3.c -- wykorzystuje zapis wskaznikowy */

#include <stdio.h>

#define MIESIACE 12

int main(void)

{

int dni[MIESIACE] = {31,28,31,30,31,30,31,31,30,31,30,31};

int index;

for (index = 0; index < MIESIACE; index++)

printf("Miesiac %d ma %d dni.\n", index +1,

*(dni + index)); // rownowazne dni[index]

return 0;

}

P7

/* suma_t1.c -- sumuje elementy tablicy */

#include <stdio.h>

#define ROZMIAR 10

long sumuj(int tab[], int n);

int main(void)

{

int kulki[ROZMIAR] = {20,10,5,39,4,16,19,26,31,20};

long wynik;

wynik = sumuj(kulki, ROZMIAR);

printf("Calkowita liczba kulek wynosi %ld.\n", wynik);

printf("Rozmiar tablicy kulki wynosi %d bajtow.\n",

sizeof kulki);

return 0;

}

long sumuj(int tab[], int n) /* jak duza jest tablica? */

{

int i;

long suma = 0;

for( i = 0; i < n; i++)

suma += tab[i];

printf("Rozmiar tablicy tab wynosi %d bajtow.\n", sizeof tab);

return suma;

}

P8

/* suma_t2.c -- sumuje elementy tablicy */

#include <stdio.h>

#define ROZMIAR 10

long sumujw(int * poczatek, int * koniec);

int main(void)

{

int kulki[ROZMIAR] = {20,10,5,39,4,16,19,26,31,20};

long wynik;

wynik = sumujw(kulki, kulki + ROZMIAR);

printf("Calkowita liczba kulek wynosi %ld.\n", wynik);

return 0;

}

/* wykorzystuje dzialania na wskaznikach */

long sumujw(int * poczatek, int * koniec)

{

long suma = 0;

while (poczatek < koniec)

{

suma += *poczatek; /* dodaje wartosc do sumy */

poczatek++; /* przenosi wskaznik do nastepnego elementu */

}

return suma;

}

P9

/* kolejn.c -- priorytet w dzialaniach na wskaznikach */

#include <stdio.h>

int dane[2] = {100, 300};

int wiecejdanych[2] = {200, 400};

int main(void)

{

int * w1, * w2, * w3;

w1 = w2 = dane;

w3 = wiecejdanych;

printf("*w1++ = %d, *++w2 = %d, (*w3)++ = %d\n",

*w1++, *++w2, (*w3)++);

printf(" *w1 = %d, *w2 = %d, *w3 = %d\n",

*w1, *w2, *w3);

return 0;

}

P-10

/* wsk_op.c -- dzialania na wskaznikach */

#include <stdio.h>

int main(void)

{

int urna[3] = {100,200,300};

int * wsk1, * wsk2;

wsk1 = urna; /* przypisanie wskaznikowi adresu */

wsk2 = &urna[2]; /* jak wyzej */

/* dereferencja wskaznika i */

/* pobranie jego adresu */

printf("wsk1 = %p, *wsk1 =%d, &wsk1 = %p\n",

wsk1, *wsk1, &wsk1);

wsk1++; /* inkrementacja wskaznika */

printf("wartosci po wsk1++\n");

printf("wsk1 = %p, *wsk1 =%d, &wsk1 = %p\n",

wsk1, *wsk1, &wsk1);

printf("wsk2 = %p, *wsk2 =%d, &wsk2 = %p\n",

wsk2, *wsk2, &wsk2);

++wsk2; /* wyjscie poza koniec tablicy */

printf("wartosci po ++wsk2\n");

printf("wsk2 = %p, *wsk2 = %d, &wsk2 = %p\n",

wsk2, *wsk2, &wsk2);

printf("wsk2 - wsk1 = %d\n", wsk2 - wsk1);

/* odejmowanie wskaznikow */

return 0;

}

P11

/* tabf.c -- funkcje wykorzystujace tablice */

#include <stdio.h>

#define ROZMIAR 5

void pokaz_tablice(const double tab[], int n);

void pomnoz_tablice(double tab[], int n, double mnoz);

int main(void)

{

double dip[ROZMIAR] = {20.0, 17.66, 8.2, 15.3, 22.22};

printf("Poczatkowa tablica dip:\n");

pokaz_tablice(dip, ROZMIAR);

pomnoz_tablice(dip, ROZMIAR, 2.5);

printf("Tablica dip po wywolaniu funkcji pomnoz_tablice():\n");

pokaz_tablice(dip, ROZMIAR);

return 0;

}

void pokaz_tablice(const double tab[], int n)

{

int i;

for (i = 0; i < n; i++)

printf("%8.3f ", tab[i]);

putchar('\n');

}

/* mnozy kazdy element tablicy przez te sama liczbe */

void pomnoz_tablice(double tab[], int n, double mnoz)

{

int i;

for (i = 0; i < n; i++)

tab[i] *= mnoz;

}

P12

/* deszcz.c -- znajduje sumy roczne, roczna srednia oraz srednia

miesieczna dla danych o opadach z kilku lat */

#include <stdio.h>

#define MIESIACE 12 /* liczba miesiecy w roku */

#define LATA 5 /* liczba lat danych */

int main(void)

{

/* inicjalizacja danych o opadach z lat 1995 - 1999 */

const float deszcz[LATA][MIESIACE] = {

{10.2, 8.1, 6.8, 4.2, 2.1, 1.8, 0.2, 0.3, 1.1, 2.3, 6.1, 7.4},

{9.2, 9.8, 4.4, 3.3, 2.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 5.2},

{6.6, 5.5, 3.8, 2.8, 1.6, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 4.2},

{4.3, 4.3, 4.3, 3.0, 2.0, 1.0, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6},

{8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.2}

};

int rok, miesiac;

float podsuma, suma;

printf(" ROK OPADY (w cm)\n");

for (rok = 0, suma = 0; rok < LATA; rok++)

{ /* dla kazdego roku sumuj opady dla kazdego miesiaca */

for (miesiac = 0, podsuma = 0; miesiac < MIESIACE; miesiac++)

podsuma += deszcz[rok][miesiac];

printf("%5d %12.1f\n", 1995 + rok, podsuma);

suma += podsuma; /* suma dla wszystkich lat */

}

printf("\nRoczna srednia wynosi %.1f cm.\n\n", suma/LATA);

printf("SREDNIE MIESIECZNE:\n\n");

printf(" Sty Lut Mar Kwi Maj Cze Lip Sie Wrz Paz ");

printf(" Lis Gru\n");

for (miesiac = 0; miesiac < MIESIACE; miesiac++)

{ /* dla kazdego miesiaca, sumuj opady w ciagu lat */

for (rok = 0, podsuma = 0; rok < LATA; rok++)

podsuma += deszcz[rok][miesiac];

printf("%4.1f ", podsuma/LATA);

}

printf("\n");

return 0;

}

P13

/* zippo1.c -- adresy */

#include <stdio.h>

int main(void)

{

int zippo[4][2];

printf("zippo = %p, zippo[0] = %p\n", zippo, zippo[0]);

printf("&zippo[0][0] = %p, &zippo = %p\n",

&zippo[0][0], *zippo);

return 0;

}

P14

/* zippo2.c -- wiecej informacji o zippo */

#include <stdio.h>

int main(void)

{

int zippo[4][2];

printf("zippo = %p, zippo[0] = %p\n", zippo, zippo[0]);

printf("&zippo[0][0] = %p, &zippo = %p\n",

&zippo[0][0], *zippo);

printf("zippo + 1 = %p, zippo[0] + 1 = %p\n",

zippo + 1, zippo[0] + 1);

printf("&zippo[0][0] + 1 = %p, *zippo + 1 = %p\n",

&zippo[0][0] + 1, *zippo + 1);

printf("*(zippo + 1) = %p\n", *(zippo + 1));

return 0;

}

P15

/* podwtab1.c -- podwaja elementy tablicy */

#include <stdio.h>

void podw(int tab[], int rozmiar);

int main(void)

{

int smieci[3][4] = {

{2,4,5,8},

{3,5,6,9},

{12,10,8,6}

};

int i, j;

for (i = 0; i < 3 ; i++)

podw(smieci[i], 4);

for (i = 0; i < 3; i++)

{

for (j = 0; j < 4; j++)

printf("%5d", smieci[i][j]);

putchar('\n');

}

return 0;

}

void podw(int tab[], int rozmiar) /* lub int * tab */

{

int i;

for (i = 0; i < rozmiar; i++)

tab[i] *= 2;

}

P16

/* podwtab2.c -- podwaja elementy tablicy */

#include <stdio.h>

void podw(int tab[], int rozmiar);

int main(void)

{

static int smieci[3][4] = {

{2,4,5,8},

{3,5,6,9},

{12,10,8,6}

};

int i, j;

podw(smieci[0], 3*4);

for (i = 0; i < 3; i++)

{

for (j = 0; j < 4; j++)

printf("%5d", smieci[i][j]);

putchar('\n');

}

return 0;

}

void podw(int tab[], int rozmiar) /* lub int * tab */

{

int i;

for (i = 0; i < rozmiar; i++)

tab[i] *= 2;

}

P17

/* podwtab3.c -- podwaja elementy tablicy */

#include <stdio.h>

void podw2 (int tab[][4], int rozmiar);

int main(void)

{

static int smieci[3][4] = {

{2,4,5,8},

{3,5,6,9},

{12,10,8,6}

};

int i, j;

podw2(smieci,3);

for (i = 0; i < 3; i++)

{

for (j = 0; j < 4; j++)

printf("%5d", smieci[i][j]);

putchar('\n');

}

return 0;

}

void podw2 (int tab[][4], int rozmiar) /* lub int (*tab)[4] */

{

int i, j;

for (i = 0; i < rozmiar; i++)

for (j = 0; j < 4; j++)

tab[i][j] *= 2;

}

P20

/* srednia.c -- oblicza srednia podanych liczb */

#include <stdio.h>

#define MAX 25

int pobierz_tablice(double tab[], int granica);

void pokaz_tablice(const double tab[], int n);

double srednia(const double tab[], int n);

int main(void)

{

double dane[MAX];

int ilosc;

ilosc = pobierz_tablice(dane, MAX);

if (ilosc == 0)

printf("Brak danych. Czesc.\n");

else

{

printf("Wpisano nastepujace liczby:\n\n");

pokaz_tablice(dane, ilosc);

printf("\nSrednia z tych wartosci wynosi %.2f.\n",

srednia(dane, ilosc));

}

return 0;

}


int pobierz_tablice(double tab[], int granica)

{

int i = 0;

printf("Podaj do %d liczb. Aby zakonczyc wpisywanie,\n", granica);

printf("wpisz litere lub EOF.\n");

while (i < granica && scanf("%lf", &tab[i]) == 1)

i++;

return i;

}

void pokaz_tablice(const double tab[], int n)

{

int i;

for (i = 0; i < n; i++)

{

printf("%10.2f ", tab[i]);

if (i % 6 == 5)

putchar('\n');

}

if (i % 6 != 0)

putchar('\n');

}

double srednia(const double tab[], int n)

{

int i;

double suma = 0;

for (i = 0; i < n ; i++)

suma += tab[i];

return (suma/n);

}

P11-25 /* sort_lan.c -- pobiera lancuchy i je porzadkuje */

#include <stdio.h>

#include <string.h>

#define ROZMIAR 81 /* granica dlugosci lancucha, wlacznie z \0 */

#define GRAN 20 /* maksymalna liczba wierszy */

void srtlan(char *lancuchy[], int num); /* funkcja sortujaca lancuchy */

int main(void)

{

char dane[GRAN][ROZMIAR]; /* tablica przechowujaca dane wejsciowe */

char *wsklan[GRAN]; /* tablica zmiennych wskaznikowych */

int licz = 0; /* licznik danych wejsciowych */

int k; /* licznik danych wyjsciowych */

printf("Podaj maksymalnie %d wierszy, a ja je uporzadkuje.\n",GRAN);

printf("Aby zakonczyc, wcisnij Enter na poczatku wiersza.\n");

while (licz < GRAN && gets(dane[licz]) != NULL && dane[licz][0] != '\0')

{

wsklan[licz] = dane[licz]; /* ustaw wskazniki na lancuchy */

licz++;

}

srtlan(wsklan, licz); /* maszyna sortujaca lancuchy */

puts("\nOto uporzadkowana lista:\n");

for (k = 0; k < licz; k++)

puts(wsklan[k]) ; /* posortowane wskazniki */

return 0;

}

void srtlan(char *lancuchy[], int num) /* funkcja sortujaca wskazniki do lancuchow */

{

char *temp;

int dol, szuk;

for (dol = 0; dol < num-1; dol++)

for (szuk = dol + 1; szuk < num; szuk++)

if (strcmp(lancuchy[dol],lancuchy[szuk]) > 0)

{

temp = lancuchy[dol];

lancuchy[dol] = lancuchy[szuk];

lancuchy[szuk] = temp;

} }



Wyszukiwarka

Podobne podstrony:
Prat St R12
MT st w 06
cukry cz 2 st
Szacowanie zasobów st
Żywienie sztuczne niem St
ch zwyrodnieniowa st
Zaj III Karta statystyczna NOT st
R10 Gleba I
PREZENTACJA 6 badanie ST WSISIZ
BUD»ET PAĐSTWA
R10 Gleba I
FARMAKOLOGIA WYKŁAD III RAT MED ST
MT st w 02a
Semin 3 ST Ps kl Stres
St miedzypaliczkowe blizsze

więcej podobnych podstron