You are currently browsing the monthly archive for Listopad 2008.

Witam. Rozwiązania zadań nie pojawią się ponieważ w xero są juz zrobione all wiec nie ma potrzeby.

pozdrawiam

1. Zadeklarować jednowymiarową tablicę tab[TAB_SIZE] typu int. Zainicjować ją w deklaracji.

a) Obliczyć sumę elementów tablicy stosując różne konstrukcje: tab[i], tab+i, ptr+i, ptr++, gdzie ptr jest wskaźnikiem do typu int,

b) zliczyć elementy tablicy spełniające określony warunek (równy n, mniejszy/większy od n, w przedziale <n,m>,

c) zastąpić każdy element tablicy jego sumą z elementem następnym. Dla ostatniego elementu tablicy jako następny przyjąć pierwszy element tablicy.

int cos[tab_size]={0,0,0,3,4,5};

lub

int cos[]={0,0,0,3,4,5};

int suma = 0;

int *ptr = NULL;

a)

for(int i=0; i < tab_size; i++)suma += cos[i];

for(int i=0; i < tab_size; i++)suma += *(tab+i);

ptr = cos;

for(int i=0; i < tab_size; i++)suma += *(ptr+i);

ptr = cos;

while(ptr < ptr+tab_size)suma += *(ptr++);

b)

int a,b,c;

for(int i=0; i < tab_size; i++){

wiekszy) if( n > cos[i])suma += cos[i];

mniejszy) if( n < cos[i])suma += cos[i];

zalezny) if(n > cos[i] && cos[i] < m )suma += cos[i];

}

c)

for(int i=0; i < tab_size; i++){

cos[i] += cos[(i+1)%tab_size];

}

2. Napisać funkcję, która dla tablicy jednowymiarowej wykona następującą operację:

a) określenie wartości elementu maksymalnego,

b) określenie wartości elementu maksymalnego i jego pozycji,

c) odwrócenie kolejności elementów w tablicy,

d) uporządkowanie tablicy rosnąco,

e) uporządkowanie tablicy rosnąco lub malejąco (wybór – parametr funkcji).

Uwaga: Funkcja powinna być tak zaprojektowana, aby można było ją było wykorzystać dla różnych tablic o różnej liczbie elementów.

a+b)

int foo_max(int tab[], int rozmiar, int *index){

int max = 0;

int index = 0;

for(int i=0; i < tab_size; i++){

if( tab[i] >max){

max = tab[i];

(*index) = i;

}

}

return max;

}

c)

void swap(int tab[], int rozmiar){

int temp;

for(int i=0; i < tab_size/2; i++){

temp = cos[tab_size-1-i];

cos[tab_size-1-i] = cos[i];

cos[i] = temp;

}

}

d) bombelkowo zapisac:

int BubbleSort(int num[], int numel)

{

int i, j, grade, moves = 0;

for ( i = 0; i < (numel – 1); i++)

{

for(j = 1; j < numel; j++)

{

if (num[j] < num[j-1])

{

grade = num[j];

num[j] = num[j-1];

num[j-1] = grade;

moves++;

}

}

}

return moves;

}

Podobnie e) tylko że:

function sort(int num[], int numel, bool direction){

if(direction){

}else{

}

}

3. Napisać funkcję, która dla dwóch tablic jednowymiarowych wykona ich sumowanie, umieszczając wynik w pierwszej tablicy

function sort(int num[], int num[], int numel){

for(int i=0; i < tab_size; i++)num[i]+=num2[i];

}

4. Napisać funkcję, która dla podanego (jako parametr) łańcucha znakowego (stringu) wykona następującą operację:

a) obliczenie długości stringu,

b) znalezienie pierwszego wystąpienia zadanego znaku,

c) policzenie liczby wystąpień zadanego znaku w stringu,

d) odwrócenie kolejności znaków (czyli zamiana typu: napis ® sipan).

Uwaga: Nie używać żadnych funkcji bibliotecznych, np. strlen().

a)

int lenght(char* str){

char *temp = str;

while((*temp) != ”)temp++;

return temp – str;

}

b)

int count_char(char* str, char sign){

int counter = 0;

while( (*temp++) != sign))counter++;

return counter;

}

c)

// J

int count_char(char* str, char sign){

int i = 0;

for( ; *(temp+i) != sign; i++);

reurnt i;

}

5. Napisać funkcję, której przekazujemy wartość typu unsigned char. Funkcja powinna zwrócić:

a) liczbę bitów niezerowych,

b) pozycję pierwszego niezerowego bitu (przeglądamy od najmłodszej pozycji),

c) przekazaną wartość po odwróceniu bitów (np. 1001 0111 ® 1110 1001),

d) przekazaną wartość po zamianie połówek bajtu (np. 1001 0111 ® 0111 1001).

a)

int foo(unsigned char cos){

int counter = 0;

for(int i = 0; i < 8*sizeof(unsigned char); i++){

if(cos<<1)counter++;

}

reutrn counter;

}

b)

int foo(unsigned char cos){

int counter = 0;

for(int i = 0; i < 8*sizeof(unsigned char); i++){

if(cos<<1)reutrn counter++;

}

reutrn counter;

}

c)

unsigned char foo(unsigned char cos){

unsigned char temp=0;

for(int i = 0; i < 8*sizeof(unsigned char); i++){

if(cos<<1){

temp = temp | 00000001;

}

temp << 1;

}

return temp;

}

d)

unsigned char foo(unsigned char cos){

unsigned char temp=0;

temp = cos;

cos << 4;

temp >> 4;

// temp = temp | cos;

temp |= cos;

}

ROZWIĄZANIA BY “JONES” 27.11.2008R.

Zad.1

Napisz program klasyfikujący klawisze naciskane na klawiaturze i wyświetlający jeden z napisów:
- mała litera (97-122)
- duża litera  (65-90)
- cyfra  (49-57)
- klawisz ENTER  (13)
- klawisz ESC  (27)
- inny klawisz
do pobierania kodu klawisza wykorzystaj funkcję _getch(), bądź _getche(), z biblioteki <conio.h>

Opis powyższych funkcji z helpa Visual Studio 2005

The _getche and _getwche functions read a single character from the console with echo, meaning that the character is displayed at the console. None of these functions can be used to read CTRL+C. When reading a function key or an arrow key, each function must be called twice; the first call returns 0 or 0xE0, and the second call returns the actual key code.

The _getch and _getwch functions read a single character from the console without echoing the character. None of these functions can be used to read CTRL+C. When reading a function key or an arrow key, each function must be called twice; the first call returns 0 or 0xE0, and the second call returns the actual key code.

PROGRAM 1:

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{  
   int klawisz=0;
   char znak;
   cout<< "prosze wprowadzic znak z klawiatury\n";   
   while (1)
         {
          klawisz = getch();
          if ((klawisz >= 97) && (klawisz <= 122))
          cout << "Mala litera" << endl;
          else if ((klawisz >= 48) && (klawisz <= 57))
          cout << "cyfra" << endl;
          else if ((klawisz >= 65) && (klawisz <= 90))
          cout << "Duza litera" << endl;
          else if (klawisz == 13)
          cout << "ENTER" << endl;
          else if (klawisz == 27)
          cout << "ESC" << endl;
          else cout << "Inny znak" << endl;
          }
}


Zad.2 Proszę napisać program, który:

podaną ilość razy (n) losuje dwie liczby (a i b), z podanego przedziału (0, max), pyta o wybranie operacji (dodawanie, odejmowanie, mnożenie, dzielenie ‘/’ oraz dzielenie modulo). Następnie wyświetla użytkownikowi zadanie np. „Podaj wynik: a oper b”, w miejscu oper powinien pojawić się znak działania, zaś w miejscu a i b wylosowane liczby (całkowite). Należy podać wynik, a zadaniem programu jest sprawdzenie poprawności wyniku i po wykonaniu wszystkich iteracji wyświetlenie liczby poprawnych i błędnych odpowiedzi.


Generowanie liczb pseudolosowych przy wykorzystaniu funkcji rand_s :

#define _CRT_RAND_S – nad plikami nagłówkowymi (pierwsze co pojawia się w pliku z programem)

unsigned int number; //tak musi być, bo tego wymaga funkcja

double a; //zmienne muszą typu double ponieważ należy wykonać operację dzielenia

double b;

double max; // deklaracja zmiennej określającej górną granicę przedziału z jakiego są losowane liczby

a=(rand_s (&number));

a=(double) number/(double) UINT_MAX * max;

b=(rand_s( &number ));

b=(double) number/(double) UINT_MAX * max;

W celu otrzymania zmiennych a i b typu całkowitego należy dokonać tzw. rzutowania

a=(int)a; b=(int)b; Funkcja rand_s() wymaga nagłówka “stdlib.h”

Opis funkcji rand_s z helpa Visual Studio 2008

The rand_s function writes a pseudorandom integer in the range 0 to UINT_MAX to the input pointer. The rand_s function uses the operating system to generate cryptographically secure random numbers. It does not use the seed generated by the srand function nor does it affect the random number sequence used by rand.

The rand_s function requires that constant _CRT_RAND_S be defined prior to the inclusion statement in order for the function to be declared, such as in the example below:

#define _CRT_RAND_S


PROGRAM 2:

#include <conio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int max,a,x,b,c,dobre,zle,wynik;
dobre=0;
zle=0;
char y;
srand(time(NULL));
cout<<"Podaj koniec przedzialu"<<endl;
cin>>max;

cout<<"Ile razy ma sie wykonac petla."<<endl;
cin>>x;

for(int i=0;i<x;i++)
{
cout<<"Jakie dzialanie chcesz wykonac?"<<endl;
cout<<"Dodawanie- wcisnij [+]."<<endl;
cout<<"Odejmowanie- wcisnij [-]."<<endl;
cout<<"Mnozenie- wcisnij[*]."<<endl;
cout<<"Dzielenie - wcisnij [/]."<<endl;
cout<<"Jesli chcesz wykonac dzielenie modulo - wcisnij [%]."<<endl;
cin>>y;
switch(y)
{
case '+':
a=rand()%(max+1);
b=rand()%(max+1);
cout<<"Ile wynosi suma liczb: "<<a<<" i "<<b<<".";
cin>>wynik;
if (wynik==a+b)
{
cout<<"Podales dobra odpowiedz."<<endl;
dobre=dobre+1;
}
else
{
cout<<"Podales zla odpowiedz."<<endl;
zle=zle+1;
}
break;

case '-':
a=rand()%(max+1);
b=rand()%(max+1);
cout<<"Ile wynosi roznica liczb: "<<a<<" i "<<b<<".";
cin>>wynik;
if (wynik==a-b)
{
cout<<"Podales dobra odpowiedz."<<endl;
dobre=dobre+1;
}
else
{
cout<<"Podales zla odpowiedz."<<endl;
zle=zle+1;
}
break;

case '*':
a=rand()%(max+1);
b=rand()%(max+1);
cout<<"Ile wynosi iloczyn liczb: "<<a<<" i "<<b<<".";
cin>>wynik;
if (wynik==a*b)
{
cout<<"Podales dobra odpowiedz."<<endl;
dobre=dobre+1;
}
else
{
cout<<"Podales zla odpowiedz."<<endl;
zle=zle+1;
}
break;

case '/':
do
{
a=rand()%(max+1);
b=rand()%(max+1);
}
while((a<b) && (b==0) && (a%b!=0));
cout<<"Ile wynosi iloraz liczb: "<<a<<" i "<<b<<".";
cin>>wynik;
if (wynik==a/b)
{
cout<<"Podales dobra odpowiedz."<<endl;
dobre=dobre+1;
}
else
{
cout<<"Podales zla odpowiedz."<<endl;
zle=zle+1;
}
break;
case '%':
do
{
a=rand()%(max+1);
b=rand()%(max+1);
}
while((b==0)&&(a<b));
cout<<"Ile wynosi reszta z dzielenia liczb: "<<a<<" i "<<b<<".";
cin>>wynik;
if (wynik==a%b)
{
cout<<"Podales dobra odpowiedz."<<endl;
dobre=dobre+1;
}
else
{
cout<<"Podales zla odpowiedz."<<endl;
zle=zle+1;
}
break;
}
}

cout<<"Podales: "<<dobre<<" dobrych odpowiedzi i "<<zle<<" zlych odpowiedzi."<<endl;
_getch();
_getch();
return(0);
}

Zagadnienia:

deklarowanie struktur; inicjowanie struktur wartościami początkowymi; operacje z

wykorzystaniem tablic struktur i tablic wskaźników na struktury.

1. Zadeklarować strukturę typu tosoba postaci struct { char naz[20]; unsigned rok, mies,

dzien; long id; }. Zdefiniować zmienną s typu tosoba, zainicjowaną w programie

wartościami początkowymi, oraz wskaźnik x na strukturę typu tosoba. W programie

głównym utworzyć dynamicznie zmienną typu tosoba i zapamiętać jej adres w zmiennej

x. Zainicjować zmienną wskazywaną przez x zawartością zmiennej s. Opracować funkcje

wyprowadzające na ekran zawartość zmiennej strukturalnej typu tosoba. Dane są

następujące prototypy:

a) void pisz1(tosoba s); b) void pisz2(tosoba *x).

Wyprowadzić na ekran zawartość zmiennej statycznej s za pomocą funkcji pisz1 i pisz2

oraz zawartość zmiennej dynamicznej wskazywanej przez x również za pomocą każdej z

opracowanych funkcji. Zwolnić pamięć wskazywaną przez x.

2. Opracować funkcje umożliwiające wczytanie danych z klawiatury lub wstawienie

wartości losowych do zmiennej strukturalnej typu tosoba (deklaracja typu tosoba zobacz

zadanie 1). Dane są następujące prototypy:

a) tosoba w1(void) – wczytywanie z klawiatury, struktura zwracana przez nazwę;

b) void w2(tosoba *s) – wczytywanie z klawiatury, struktura zwracana przez wskaźnik;

c) void w3(tosoba& s) – wczytywanie z klawiatury, struktura zwracana przez referencję;

d) void losuj(tosoba *s) – losowanie danych do struktury wskazywanej przez s;

do pola naz[20] wstawiany jest łańcuch ”naz” zakończony losową liczbą należącą do

przedziału [1, 100), np. ”naz21”, ”naz3”, itd.; do pozostałych pól wstawiane są losowe

liczby należące, odpowiednio, do przedziałów [1900, 1981), [1, 13), [1, 32), [1, 100).

W programie głównym zainicjować zmienną typu tosoba za pomocą każdej z funkcji.

3. Zdefiniować tablicę struktur typu struct twsp { int x, y; } o rozmiarze N, gdzie N jest

stałą. Przyjąć, że struktury służącą do przechowywania współrzędnych punktów.

Zainicjować tablicę danymi w taki sposób, aby kolejne struktury w tablicy zawierały

współrzędne losowych punktów (x,y), gdzie x należy do przedziału [0,79), natomiast y

należy do przedziału [0,24). Wczytać z klawiatury współrzędne badanego punktu (a,b).

Wyznaczyć punkty najbliższe punktowi (a,b) w sensie odległości kartezjańskiej

(odległość pomiędzy punktami (x,y) i (a,b) jest obliczana ze wzoru d = sqrt[(x-a)(x-a) +

(y-b)(y-b)]). Wyprowadzić współrzędne wszystkich znalezionych punktów na ekran.

Może być kilka punktów równoodległych od punktu (a,b).

4. Zdefiniować tablicę struktur typu tosoba, o rozmiarze N, oraz tablicę indeksów unsigned

ind[N], gdzie N – stała. W programie głównym:

a) zainicjować tablicę struktur losowymi danymi wykorzystując funkcję losuj

przedstawioną w zadaniu 2;

b) zainicjować tablicę indeksów kolejnymi liczbami od 0 do N-1, zgodnie z regułą

ind[i] = i, dla i=0, … , N-1.

Nie zmieniając zawartości tablicy struktur i nie kopiując jej do innej tablicy zmodyfikować

tablicę indeksów w taki sposób, aby kolejne pozycje w tablicy ind określały

położenie struktur posortowanych według nazwisk (np. wykorzystać funkcję qsort).

5. Zdefiniować N – elementową tablicę wskaźników na struktury typu struct tosoba { char

naz[20]; unsigned rok, mies, dzien; long id; }, gdzie N jest stałą w programie.

Zdefiniować zmienną unsigned ile=0, która ma służyć do przechowywania liczby

wskaźników wprowadzonych do tablicy. Opracować następujące funkcje:

a) tworzącą zmienną dynamiczną typu tosoba oraz inicjującą zmienną losowymi

wartościami w sposób następujący: do pola naz[20] wstawiany jest łańcuch ”naz”

zakończony losową liczbą należącą do przedziału [1, 1000), np. ”naz21”, ”naz300”,

itd.; do pozostałych pól wstawiane są losowe liczby należące, odpowiednio, do

przedziałów [1900, 1981), [1, 13), [1, 32), [1, 10000); wstawiającą adres utworzonej

zmiennej na pierwszej wolnej pozycji w tablicy (jest to pozycja końca tablicy o

indeksie ile < N).

b) wyprowadzającą zawartość struktury typu tosoba na ekran;

c) znajdującą w tablicy pierwszą daną o podanych wartościach pól (jeśli podano

nazwisko, to wyszukiwanie według nazwisk; jeśli podano nazwisko i datę - rok, mies,

dzien, to wyszukiwanie według nazwisk i dat; jeżeli podano nazwisko, datę oraz

identyfikator, to wyszukiwanie według trzech pól równocześnie);

d) usuwającą z tablicy pierwszą daną o podanych wartościach wszystkich pól; funkcja

znajduje element, zwalnia pamięć przydzieloną elementowi i dokonuje kompresji

tablicy (przesunięcia elementów i zmniejszenia wartości ile);

e) sortującą elementy tablicy wskaźników w taki sposób, aby wskazywane struktury

tworzyły ciąg uporządkowany według nazwisk (należy zamieniać wskaźniki bez

modyfikacji położenia struktur w pamięci); wykorzystać funkcję qsort;

f) usuwającą wszystkie dane z pamięci i zerującą tablicę wskaźników.

W programie głównym utworzyć dynamicznie m<N struktur typu tosoba (po utworzeniu

ile=m), zainicjować struktury losowymi wartościami i zapamiętać ich adresy w tablicy.

Przetestować działanie opracowanych funkcji. Przed zakończeniem programu zwolnić

przydzieloną pamięć.

6. Utworzyć dynamiczną tablicę N wskaźników na struktury typu struct tdana {int a; char

t[20];}, gdzie a jest liczbą arabską należącą do przedziału od 0 do 3999, natomiast t służy

do przechowywania tekstu reprezentującego liczbę w zapisie rzymskim. Opracować program,

który dla każdej struktury losuje liczbę arabską i zapisuje odpowiadającą jej liczbę

rzymską w polu t. Wykorzystać zainicjowaną tablicę struktur typu struct RZYM {int w;

char *s; }R[ ] = { {1, ”I”}, {5, ”V”}, {10, ”X”}, {50, ”L”}, {100, ”C”}, {500, ”D”},

{1000, ”M”}}. Przykładowe liczby: 4-IV, 6-VI, 9-IX, 14-XIV, 19-XIX, 40-XL, 90-XC,

400-CD, 900-CM, 3999-MMMCMXCIX. Wyprowadzić struktury typu tdana na ekran.

Pr1

#include<stdio.h>

#include<conio.h>

struct tosoba

{

char naz[20];

unsigned rok,mies,dzien;

long id;

} s={“Powalski”,1967,12,8,340};

void pisz1(tosoba s);

void pisz2(tosoba *x);

//ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

void main()

{

tosoba *x=new tosoba;

*x=s;

printf(“zmienna statyczna:\n”);

pisz1(s);

pisz2(&s);

printf(“zmienna dynamiczna:\n”);

pisz1(*x);

pisz2(x);

delete x;

getch();

}

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1

void pisz1(tosoba s)

{

printf(“%s %u %u %u %ld\n”,s.naz,s.rok,s.mies,s.dzien,s.id);

}

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

void pisz2(tosoba *x)

{

printf(“%s %u %u %u %ld\n”,s.naz,s.rok,s.mies,s.dzien,s.id);

}

Pr2

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

struct tosoba

{

char naz[20];

unsigned rok,mies,dzien;

long id;

} s={“Naz”,1967,12,8,340};

tosoba w1(void);

void w2(tosoba*k);

void w3(tosoba&k);

void losuj(tosoba *s);

void wyswietl(tosoba k);

//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

mmmmmmmmmmmmmmmmmmmmmmmmmmmm

void main()

{

char p;

srand(time(0));

printf(“Wybierz podpunkt:\n”);

printf(“1-a\n”);

printf(“2-b\n”);

printf(“3-c\n”);

printf(“4-d\n”);

flushall;

p=getchar();

switch(p)

{

case’1′: w1();break;

case’2′: w2(&s);break;

case’3′: w3(s);break;

case’4′: losuj(&s);break;

default: printf(“error”);

}

getch();

}

//lllllllllllllllllllllllllllllllllllllllllllllllll

llllllllllllllllllllllllllll

tosoba w1(void)

{

tosoba k;

printf(“nazwisko:”);

scanf(“%s”,&k.naz);

printf(“rok:”);

scanf(“%u”,&k.rok);

printf(“miesiac:”);

scanf(“%u”,&k.mies);

printf(“dzien:”);

scanf(“%u”,&k.dzien);

printf(“id:”);

scanf(“%ld”,&k.id);

wyswietl(k);

return k;

}

//2222222222222222222222222222222222222222222222222

2222222222222222222222222222

void w2(tosoba*k)

{

tosoba p;

k=&p;

printf(“nazwisko:”);

scanf(“%s”,&p.naz);

printf(“rok:”);

scanf(“%u”,&p.rok);

printf(“miesiac:”);

scanf(“%u”,&p.mies);

printf(“dzien:”);

scanf(“%u”,&p.dzien);

printf(“id:”);

scanf(“%ld”,&p.id);

wyswietl(p);

}

//3333333333333333333333333333333333333333333333333

33333333333333333333333333

void w3(tosoba &k)

{

printf(“nazwisko:”);

scanf(“%s”,&k.naz);

printf(“rok:”);

scanf(“%u”,&k.rok);

printf(“miesiac:”);

scanf(“%u”,&k.mies);

printf(“dzien:”);

scanf(“%u”,&k.dzien);

printf(“id:”);

scanf(“%ld”,&k.naz);

wyswietl(k);

}

//4444444444444444444444444444444444444444444444444

444444444444444444444444444

void losuj(tosoba *s)

{

tosoba p;

s=&p;

p.naz[0]=’n';

p.naz[1]=’a';

p.naz[2]=’z';

p.naz[4]=random(100)+1;

p.rok=random(81)+1900;

p.mies=random(12)+1;

p.dzien=random(31)+1;

p.id=random(100)+1;

wyswietl(p);

}

//3333333333333333333333333333333333333333333333333

3333322222222222222222222222

void wyswietl(tosoba i)

{

printf(“naz:”);

printf(“%s\n”,i.naz);

printf(“rok:”);

printf(“%u\n”,i.rok);

printf(“mies:”);

printf(“%u\n”,i.mies);

printf(“dzien:”);

printf(“%u\n”,i.dzien);

printf(“id:”);

printf(“%ld”,i.id);

}

Pr2+

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

struct tosoba

{

char naz[20];

unsigned rok,mies,dzien;

long id;

} s={“Naz”,1967,12,8,340};

tosoba w1(void);

void w2(tosoba*k);

void w3(tosoba&k);

void losuj(tosoba *s);

void wyswietl(tosoba k);

//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

void main()

{

char p;

srand(time(0));

printf(“Wybierz podpunkt:\n”);

printf(“1-a\n”);

printf(“2-b\n”);

printf(“3-c\n”);

printf(“4-d\n”);

flushall;

p=getchar();

switch(p)

{

case’1′: w1();break;

case’2′: w2(&s);break;

case’3′: w3(s);break;

case’4′: losuj(&s);break;

default: printf(“error”);

}

getch();

}

//lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

tosoba w1(void)

{

tosoba k;

printf(“nazwisko:”);

scanf(“%s”,&k.naz);

printf(“rok:”);

scanf(“%u”,&k.rok);

printf(“miesiac:”);

scanf(“%u”,&k.mies);

printf(“dzien:”);

scanf(“%u”,&k.dzien);

printf(“id:”);

scanf(“%ld”,&k.id);

wyswietl(k);

return k;

}

//22222222222222222222222222222222222222222222222222222222222222222222222222222

void w2(tosoba*k)

{

tosoba p;

k=&p;

printf(“nazwisko:”);

scanf(“%s”,&p.naz);

printf(“rok:”);

scanf(“%u”,&p.rok);

printf(“miesiac:”);

scanf(“%u”,&p.mies);

printf(“dzien:”);

scanf(“%u”,&p.dzien);

printf(“id:”);

scanf(“%ld”,&p.id);

wyswietl(p);

}

//333333333333333333333333333333333333333333333333333333333333333333333333333

void w3(tosoba &k)

{

printf(“nazwisko:”);

scanf(“%s”,&k.naz);

printf(“rok:”);

scanf(“%u”,&k.rok);

printf(“miesiac:”);

scanf(“%u”,&k.mies);

printf(“dzien:”);

scanf(“%u”,&k.dzien);

printf(“id:”);

scanf(“%ld”,&k.naz);

wyswietl(k);

}

//4444444444444444444444444444444444444444444444444444444444444444444444444444

void losuj(tosoba *s)

{

strcpy((*s).naz,”naz”);

printf(“naz:”);

printf(“%s”,(*s).naz);

(*s).naz[4]=random(100)+1;

printf(“%d\n”,(*s).naz[4]);

(*s).rok=random(81)+1900;

(*s).mies=random(12)+1;

(*s).dzien=random(31)+1;

(*s).id=random(100)+1;

printf(“rok:”);

printf(“%u\n”,(*s).rok);

printf(“mies:”);

printf(“%u\n”,(*s).mies);

printf(“dzien:”);

printf(“%u\n”,(*s).dzien);

printf(“id:”);

printf(“%ld”,(*s).id);

}

//33333333333333333333333333333333333333333333333333333322222222222222222222222

void wyswietl(tosoba i)

{

printf(“naz:”);

printf(“%s\n”,i.naz);

printf(“rok:”);

printf(“%u\n”,i.rok);

printf(“mies:”);

printf(“%u\n”,i.mies);

printf(“dzien:”);

printf(“%u\n”,i.dzien);

printf(“id:”);

printf(“%ld”,i.id);

}

Pr3

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

const int n=10;

struct twsp {

int x,y;

} p={1,2};

void main()

{

int i=0,a,b;

double d,k=0;

twsp tab[n],p[n];

srand(time(0));

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

{

tab[i].x=random(79);

tab[i].y=random(24);

//printf(“%d,%d\n”,tab[i].x,tab[i].y);

}

printf(“a=”);

scanf(“%d”,&a);

printf(“b=”);

scanf(“%d”,&b);

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

{

d=sqrt(double((tab[i].x-a)*(tab[i].x-a)+(tab[i].y-b)*(tab[i].y-b)));

//printf(“%lf\n”,d);

//szukanie najmniejszej

if(i==0) {k=d;}

if(k>=d) {k=d;}

}

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

{

d=sqrt(double((tab[i].x-a)*(tab[i].x-a)+(tab[i].y-b)*(tab[i].y-b)));

if(k==d) {printf(“x=%d,y=%d\n”,tab[i].x,tab[i].y);}

}

getch();

}

Pr4

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

const n=10;

struct tosoba

{

char naz[20];

unsigned rok,mies,dzien;

long id;

} s={“Naz”,1967,12,8,340};

tosoba w1(void);

void losuj(tosoba *s);

void wyswietl(tosoba k);

int nazwa(const void*wsk,const void *wsk2);

void kot (void *tab);

//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

void main()

{

int i;

srand(time(0));

tosoba k[n],p;

unsigned ind[n];

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

{

losuj(&k[i]);

// wyswietl(k[i]);

}

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

{

ind[i]=i;

}

//qsort(ind,n,sizeof(unsigned),nazwa);

kot(k);

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

{

printf(“%u\n”,ind[i]);

wyswietl(k[i]);

}

getch();

}

//lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

void losuj(tosoba *s)

{

strcpy((*s).naz,”naz”);

(*s).naz[4]=random(100)+1;

(*s).rok=random(81)+1900;

(*s).mies=random(12)+1;

(*s).dzien=random(31)+1;

(*s).id=random(100)+1;

}

//33333333333333333333333333333333333333333333333333333322222222222222222222222

void wyswietl(tosoba i)

{

printf(“naz:”);

printf(“%s”,i.naz);

printf(“%d\n”,i.naz[4]);

printf(“rok:”);

printf(“%u\n”,i.rok);

printf(“mies:”);

printf(“%u\n”,i.mies);

printf(“dzien:”);

printf(“%u\n”,i.dzien);

printf(“id:”);

printf(“%ld\n”,i.id);

}

//nazwa……………………………………………………………

int nazwa(const void*wsk,const void *wsk2)

{

struct tosoba *os_1=(tosoba*)wsk;

struct tosoba *os_2=(tosoba*)wsk2;

return(os_1->naz[4]-os_2->naz[4]);

}

//KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKkkkkk

void kot (void *tab)

{

qsort(tab,n,sizeof(tosoba),nazwa);

}

Pr5

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#include <iostream.h>

struct tdana

{

int a; //liczba arabsks

char t[20]; //liczba rzymska

};

struct RZYM

{

int w;

char *s;

} R[]={{1,”I”},{5,”V”},{10,”X”},{100,”C”},{500,”D”},{1000,”M”}};

void main()

{

int n,a,i;

srand(time(0));

printf(“podaj wielkosc tablicy: “);

//scanf(“%d”,&n);

tdana* *N=new tdana*[n];

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

//{

//(*N[i]).a=random(3999);

//N[i]->a=random(3999);

//}

N[0]->a=10;

cout << N[0]->a;

N[1]->a = 11;

getch();

}

Pr6

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#include <iostream.h>

struct tdana

{

int a; //liczba arabsks

char t[20]; //liczba rzymska

};

struct RZYM

{

int w;

char *s;

} R[]={{1,”I”},{5,”V”},{10,”X”},{100,”C”},{500,”D”},{1000,”M”}};

void main()

{

int n,a,i;

srand(time(0));

printf(“podaj wielkosc tablicy: “);

//scanf(“%d”,&n);

tdana* *N=new tdana*[n];

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

//{

//(*N[i]).a=random(3999);

//N[i]->a=random(3999);

//}

N[0]->a=10;

cout << N[0]->a;

N[1]->a = 11;

getch();

}

Zagadnienia:

definiowanie wskaźników funkcji; operacje z wykorzystaniem tablic i wskaźników funkcji;

sortowanie tablic z wykorzystaniem funkcji qsort.

1. Zdefiniować wskaźnik do funkcji o jednym parametrze typu double i zwracającej wynik

typu double. Opracować funkcję o prototypie double W(double x), która oblicza wartości

wielomianu W(x) = x3 + 1. Zainicjować wskaźnik funkcji adresem funkcji W, a następnie

wyliczyć za jego pomocą wartości funkcji dla i=0,1,2,…,N, gdzie N – stała. Wyprowadzić

obliczone wartości na ekran. Porównać wyniki wywołując bezpośrednio funkcję W(i).

2. Zdefiniować wskaźnik funkcji double f(double). Zainicjować wskaźnik adresem standardowej

funkcji sin. Za pomocą wskaźnika wyznaczyć wartości funkcji sin w N losowych

punktach x, należących do przedziału [-pi/2, pi/2], gdzie N – stała. Wyprowadzić wartości

x, f(x) na ekran.

3. W programie głównym utworzyć dynamiczną tablicę złożoną z N elementów typu double.

Zainicjować tablicę losowymi liczbami rzeczywistymi należącymi do przedziału

[-10.2, 15.3). Wykorzystując standardową funkcję qsort opracować funkcję, która sortuje

elementy tablicy rosnąco. Wyprowadzić zawartość tablicy na ekran. Przed zakończeniem

programu zwolnić pamięć.

4. Zdefiniować tablicę złożoną z N elementów typu char. Zainicjować tablicę losowymi

znakami o kodach należących do przedziału [65,127). Wykorzystując standardową

funkcję qsort opracować funkcję, która sortuje elementy tablicy według kodów ASCII.

Wyprowadzić zawartość tablicy na ekran.

5. Zadeklarować typ tablicowy typedef double tx[N][2]. Opracować funkcję, która wyznacza

wartości funkcji double f(double) w przedziale [min, max] dla N punktów postaci

xi = min + i*d, gdzie d=(max-min) / (N-1) oraz i=0,1,…,N-1 (N – stała). Obliczone

elementy xi, f(xi) powinny być zapamiętane w tablicy T typu tx w sposób następujący:

T[i][0] = xi oraz T[i][1] = f(xi). Prototyp funkcji: void oblicz(double min, double max,

int n, tx T, wskaźnik_funkcji). W programie głównym wykonać obliczenia dla funkcji sin

w przedziale [-pi/2, pi/2].

6. Zdefiniować dwuwymiarową tablicę liczb typu int złożoną z nw wierszy i nk

kolumn, gdzie nw i nk są stałymi w programie. Zainicjować tablicę losowymi liczbami

całkowitymi należącymi do przedziału [-10,10]. Wykorzystując standardową funkcję

qsort opracować funkcję sortującą elementy tablicy A należące do wiersza o numerze i,

gdzie 0<= i < nw. W programie głównym posortować każdy wiersz tablicy. Wyprowadzić

zawartość tablicy wierszami na ekran.

Pr1

#include<stdio.h>

#include<conio.h>

const double N=10;

double W(double x)

{

double p;

p=x*x*x+1;

return p;

}

void main()

{

double(*f)(double),i;

f=W;

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

{

printf(“f(i)=%lf w(i)=%lf\n”,f(i),W(i));

}

getch();

}

Pr2

#include<stdio.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

const int N=10;

const double pi=3.14;

void main()

{

srand(time(0));

double(*f)(double),i,x;

f=sin;

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

{

x=pi/2-double(random(314))/100;

printf(“%lf x=%.2lf\n”,f(x),x);

}

getch();

}

Pr3

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int l_ros(const void*wsk,const void*wsk2);

void wyswietl(double tablica[],int rozmiar);

//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

void main()

{

int n,i=0;

printf(“podaj wielkosc tablicy: “);

scanf(“%d”,&n);

srand(time(0));

double *td= new double[n],a;

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

{

td[i]=(15.3 – ((double(random(256))/10)));

}

qsort(td,n,sizeof(double),l_ros);

wyswietl(td,n);

delete [] td;

getch();

}

//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

int l_ros(const void*wsk,const void*wsk2)

{

double *wsk_1,*wsk_2;

wsk_1=(double*)wsk;

wsk_2=(double*)wsk2;

return(*wsk_1-*wsk_2);

}

//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

void wyswietl(double tablica[],int rozmiar)

{

int i;

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

{

printf(“%lf\n “,tablica[i]);

}

}

Pr4

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void inicializacja(char*wsk,int N);

int ASCII(const void*wsk1,const void*wsk2);

void wyswietl(char*wsk,int N);

void main()

{

int N;

srand(time(0));

printf(“podaj rozmiar tablicy: “);

scanf(“%d”,&N);

char *tab = new char[N];

inicializacja(tab,N);

qsort(tab,N,sizeof(char),ASCII);

wyswietl(tab,N);

getch();

}

//000000000000000000000000000000000000000000000000000000000000000000000

void inicializacja(char*wsk,int N)

{

int i;

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

{

wsk[i]=65+random(62);

}

}

//0000000000000000000000000000000000000000000000000000000000000000000000

int ASCII(const void*wsk1,const void*wsk2)

{

char *wsk_1,*wsk_2;

wsk_1=(char*)wsk1;

wsk_2=(char*)wsk2;

return(*wsk_1-*wsk_2);

}

//00000000000000000000000000000000000000000000000000000000000000000000000

void wyswietl(char*wsk,int N)

{

int i;

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

{

printf(“%d \t %c \n”,wsk[i],wsk[i]);

}

}

Pr5

#include<conio.h>

#include<stdio.h>

#include<math.h>

const double pi=3.14;

const int N=20;

typedef double tx[N][2];

void oblicz(double min,double max,int n,tx T,double(*wsk)(double));

void main()

{

tx tab;

oblicz(-pi/2,pi/2,N,tab,sin);

getch();

}

//0000000000000000000000000000000000000000000000000000000000000000000000000

void oblicz(double min,double max,int n,tx T,double (*wsk)(double))

{

int i;

double x=0,d=0,y=0;

d=(max-min)/double(n-1);

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

{

x=min + i*d;

T[i][0]=x;

y=wsk(x);

T[i][1]=y;

printf(“T[%d][0]=%lf\tT[%d][1]=%lf\n”,i,x,i,y);

}

}

Pr6

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

const nk=4;

const nw=10;

int sort(const void *wsk1,const void *wsk2);

void sortuj(int tab[][nk]);

void main()

{

int tab[nw][nk],i,k;

srand(time(0));

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

{

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

{

tab[i][k]=(random(11)-10);

}

}

sortuj(tab);

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

{

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

{

printf(“tab[%d][%d]=%d\t”,i,k,tab[i][k]);

}

printf(“\n”);

}

getch();

}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

int f_sort(const void *wsk1,const void *wsk2)

{

int *wsk_1,*wsk_2;

wsk_1=(int*)wsk1;

wsk_2=(int*)wsk2;

return(*wsk_1-*wsk_2);

}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

void sortuj(int tab[][nk])

{

int i,(*p)[nk];

p=tab;

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

{

qsort(p+i,nk,sizeof(int),f_sort);

}

}

Zagadnienia:

definiowanie i deklarowanie (typedef) tablic; inicjowanie tablic; wykonywanie operacji na

tablicach; wyprowadzanie zawartości tablic na ekran; dostęp do tablic za pomocą wskaźników;

przekazywanie tablic do funkcji; sortowanie tablic.

1. Wykorzystując specyfikator typu typedef zdefiniować typ ttab reprezentujący tablicę liczb

złożoną z 10 elementów typu long. Zainicjować tablicę typu ttab losowymi liczbami

całkowitymi należącymi do przedziału [-90000,90000). Wyprowadzić zawartość tablicy

na ekran. Znaleźć element minimalny i maksymalny. Wyprowadzić elementy tablicy na

ekran.

2. Dana jest tablica jednowymiarowa double tab[n], gdzie n jest stałą w programie, oraz

wskaźnik double *wsk = tab. Zainicjować tablicę losowymi zerami i jedynkami.

Wyprowadzić tablicę na ekran. Obliczyć sumę elementów tablicy wykorzystując następujące

fragmenty kodu:

a) tab[i]; b) tab+i; c) wsk+i; d) wsk++.

3. Opracować funkcje umożliwiające inicjację tablicy int tab[n] (n-stała) losowymi liczbami

całkowitymi należącymi do przedziału [0, 100) oraz funkcję wyprowadzającą zawartość

tablicy na ekran. Dane są następujące prototypy:

a) void init1(int tab[n], int ile_zain);

b) void init2(int *tab, int ile_zain);

c) void init3(int tab[], int ile_zain);

d) void pisz(int tab[], int ile_pisz).

Przetestować działanie funkcji w programie głównym.

4. Zainicjować tablicę int tab[N] losowymi danymi należącymi do przedziału [0, 50) (np.

wykorzystać funkcję rand; N - stała). Opracować funkcję sortującą rosnąco elementy

tablicy za pomocą algorytmu prostego wybierania. Zasada działania algorytmu:

a) niech int i=0;

b) w zbiorze elementów od tab[i] do tab[n-1] znaleźć element minimalny;

c) wymienić element minimalny z elementem tab[i];

d) podstawić i=i+1;

e) powtórzyć kroki od b) do e) dla i=1,2,…,n-1.

Wyprowadzić zawartość tablicy na ekran przed i po sortowaniu.

5. Dana jest tablica znaków unsigned char t[20]. Zainicjować tablicę losowymi znakami

należącymi do przedziału [32,255]. Wyprowadzić zawartość tablicy na ekran w postaci

kod – znak (np. 65 – ‘A’).

6. Wczytać z klawiatury dwie liczby naturalne x i y. Wpisać do tablicy A kolejne cyfry

liczby x oraz do tablicy B kolejne cyfry liczby y w taki sposób, aby mniej znaczące cyfry

liczb zajmowały pozycje tablicy o mniejszych indeksach, np. dla x = 352 tablica A

powinna zawierać: A[0]=2; A[1]=5; A[2]=3. Opracować funkcję pisemnego dodawania

liczb zapisanych w tablicach A i B. Wynik umieścić w tablicy C. Wyprowadzić, jedna

pod drugą, liczby zapisane w tablicach A, B i C na ekran (zapis dodawania pisemnego).

Pr1

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

void main()

{

int i,p,s,m,k;

typedef long ttab;

ttab tab[10],min,max;

srand(time(0));

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

{

tab[i]=random(90000)-random(90000);

printf(“tab[%d]= %ld\n”, i,tab[i]);

}

for(i=0,s=0,m=0;i<10;i++)

{

for(k=0,p=0;k<10;k++)

{

if(tab[i]<tab[k]) {p–;} else

if(tab[i]>tab[k]) {p++;} else

if(tab[i]=tab[k]) {p+=0;}

}

if(s<p || s==p) {max=tab[i];s=p;}

if(m>p || m==p) {min=tab[i];m=p;}

}

printf(“max=%ld\nmin=%ld”,max,min);

getch();

}

Pr2

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

const int n=20;

void main()

{

int i;

char opcja;

double tab[n],suma,*wsk=tab;

srand(time(0));

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

{

tab[i]=random(2);

printf(“tab[%d]= %lf\n”,i,tab[i]);

}

printf(“\n 1-a\n”);

printf(” 2-b\n”);

printf(” 3-c\n”);

printf(” 4-d\n”);

opcja=getchar();

switch (opcja)

{

case’1′: for(i=0,suma=0;i<20;i++)

{

suma+=tab[i];

}

printf(“suma= %lf”, suma);

break;

case’2′: for(i=0,suma=0;i<20;i++)

{

suma+=*(tab+i);

}

printf(“\nsuma= %lf”, suma);

break;

case’3′: for(i=0,suma=0;i<20;i++)

{

suma+=*(wsk+i);

}

printf(“\nsuma= %lf”, suma);

break;

case’4′: for(i=0,suma=0;i<20;i++)

{

suma+=*(wsk++);

}

printf(“\nsuma= %lf”, suma);

break;

default: printf(“brak opcij”);

break;

}

getch();

}

Pr3

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#define n 100

void Init1(int tab[n],int ile_zain)

{

int i;

srand(time(0));

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

{

tab[i]=random(100);

}

}

void Init2(int *tab,int ile_zain)

{

int i;

srand(time(0));

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

{

*(tab+i)=random(100);

}

}

void Init3(int tab[],int ile_zain)

{

int i;

srand(time(0));

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

{

tab[i]=random(100);

}

}

void Pisz(int tab[],int ile_pisz)

{

int i;

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

{

printf(“tab[%d]= %d \n”,i,tab[i]);

}

}

void main()

{

char q;

int k,tab[n];

printf(“podaj ilu elementom chcesz nadac wartosc “);

scanf(“%d”,&k);

printf(“1-a\n”);

printf(“2-b\n”);

printf(“3-c\n”);

flushall();

q=getchar();

switch(q)

{

case’1′: Init1(tab,k);

Pisz(tab,k);

break;

case’2′: Init2(tab,k);

Pisz(tab,k);

break;

case’3′: Init3(tab,k);

Pisz(tab,k);

break;

default: printf(“brak opcij”);break;

}

getch();

}

Pr4

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

int const N=100;

void Sort(int tab[])

{

int p=0,k,i,t;

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

{

for(k=i,t=50;k<N;k++)

{

if(t>tab[k]) {t=tab[k];p=k;}

}

tab[p]=tab[i];

tab[i]=t;

printf(“tab[%d]= %d\n”,i,tab[i]);

}

}

void main()

{

int tab[N],i;

srand(time(0));

printf(“Przed Sortowaniem:\n”);

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

{

tab[i]=random(50);

printf(“tab[%d]= %d\n”,i,tab[i]);

}

printf(“\nPo Sortowaniu:\n”);

Sort(tab);

getch();

}

Pr5

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

void main()

{

int i;

unsigned char t[20];

srand(time(0));

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

{

t[i]=abs(rand()%256)+32;

printf(“%d – ‘%c’\n\n”,t[i],t[i]);

}

getch();

}

Pr6

#include<stdio.h>

#include<conio.h>

void J(int x,int tab[])

{

int k,i,s,r,l=0;

printf(” “);

for(k=x,i=0,s=1,r=0;s!=0;i++)

{

s=int(k/10);

r=k%10;

k=s;

tab[i]=r;

l++;

}

}

void Suma(int tab1[],int tab2[])

{

int C[11],i;

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

{

C[i]=tab1[i]+tab2[i];

if(C[i]>=10) {tab1[i+1]+int(C[i]/10);C[i]=C[i]%10;}

printf(“%d”,C[i]);

}

}

void main()

{

int x,y,A[10],B[10];

printf(“podaj x\n”);

scanf(“%d”,&x);

printf(“podaj y\n”);

scanf(“%d”,&y);

J(x,A);

printf(“\n”);

J(y,B);

gotoxy(1,6);

printf(“+\n”);

printf(“=\n”);

Suma(A,B);

getch();

}

Niestety nie posiadam informacji o zagadnieniach na tych zajeciach.

Pr 1

#include <stdio.h>

#include <conio.h>

void main()

{

const long x = 123;

const double y=125.7;

long *a;

double *b;

*a=x;

*b=y;

printf (“%ld \n”, x);

printf (“%ld \n”, *a);

printf (“%lf \n”, y);

printf (“%d \n”, *b);

getch();

}

pr2

#include <stdio.h>

#include <conio.h>

void main()

{

const long x = 123;

const double y=125.7;

long *a;

const double *const b =&y;

*a=x;

printf (“%ld \n”, x);

printf (“%ld \n”, *a);

printf (“%lf \n”, y);

printf (“%lf \n”, *b);

getch();

}

Zagadnienia:

wykorzystanie instrukcji iteracyjnych w programach; obliczanie prostych sum szeregów;

wyprowadzanie informacji na ekran w trybie znakowym.

1. Opracować program wyprowadzający na ekran wierszami znaki o kodach ASCII od a do

b, gdzie a, b są wczytywane z klawiatury oraz spełniają zależność 33 <= a <= b <=255.

Wyprowadzać po 12 znaków w wierszu w formacie: znak na dwóch polach, myślnik (-),

kod znaku na trzech polach, np. A- 65, e-101.

2. Wykorzystując instrukcję pętli (for) obliczyć sumę S = 1 + 2 + … + n, gdzie n jest liczbą

naturalną wczytywaną z klawiatury.

3. Obliczyć trzema sposobami za pomocą (for, while, do) sumę S = 1 – 2 + 3 – 4 + … ± n,

gdzie n jest liczbą naturalną wczytywaną z klawiatury.

4. Opracować program, który dla naturalnego n i rzeczywistego x, wczytywanych z

klawiatury, oblicza:

a) P = 12n;

b) W = xxx = xn (x do potęgi n).

Wykorzystać instrukcje iteracyjne.

5. Opracować program, który oblicza sumę S = 1/2 – 2/4 + 3/8 – 4/16 +… ± n/(2n), gdzie n

jest liczbą naturalną wczytywaną z klawiatury.

6. Wczytać zmienną całkowitą n z klawiatury. Dla i=0,1,2,3,… obliczać sumę S = 1/1 – 1/4 +

1/7 – 1/10 +… ± 1/(3i+1) tak długo, aż pojawi się i, dla którego wartość (3i+1) > n.

7. Wczytać zmienną całkowitą n z klawiatury. Opracować program, który oblicza sumę

szeregu S(n) = (1/1 + 1/2 + 1/3) – (1/7 + 1/8 + 1/9) + (1/13 + 1/14 + 1/15) – … ± 1/i, gdzie

wartość i spełnia zależność i <= n. Przykładowe sumy dla n=5,6,7,8 mają następującą

postać:

S(5) = S(6) = (1/1 + 1/2 + 1/3),

S(7) = (1/1 + 1/2 + 1/3) – (1/7),

S(8) = (1/1 + 1/2 + 1/3) – (1/7 + 1/8).

8. Opracować program, który wyprowadza na ekran następujące figury:

X X X

XX XX XXX

h XXX XXX h XXXXX h

XXXX XXXX XXXXXXX

Zmienna całkowita h, określająca wysokość figury, jest wczytywana z klawiatury.

P1

#include<stdio.h>

#include<conio.h>

void main()

{

char a,b;

int licznik = 0;

printf(“Podaj a: “);

a = getchar();

flushall();

printf(“Podaj b: “);

b = getchar();

if(a >= 33 && b <= 255 && a <= b)

while(a <= b)

{

printf(“%2c-%3d”, a, a); licznik++;

if(licznik == 12) { printf(“\n”); licznik = 0; }

a++;

}

getch();

}

P2

#include <stdio.h>

#include <conio.h>

void main()

{ int a,s,i,n;

printf (“n= “);

scanf (“%d”, &n);

a=0;

if (n>=0)

{for (i=1; i<=n; i++)

{a=a+i;

} printf (“suma wynosi %d”, a);

}

else {printf (“blad”);

}

getch();

}

P3 do while

#include <stdio.h>

#include <conio.h>

void main()

{int n,r,a,b,i,k;

printf (“podaj n= “);

scanf (“%d”, &n);

a=0;

b=0;

if (n>=0)

{

i=1;

do

{a+=i; i+=2;

}

while (i<=n);

k=2;

do

{b+=k; k+=2;

} while (k<=n);

r=a-b;

printf (“suma wynosi %d”, r);

}

else {printf (“blad”);

}

getch();

}

P3 for

#include <stdio.h>

#include <conio.h>

void main()

{int n,r,a,b,i,k;

printf (“podaj n= “);

scanf (“%d”, &n);

a=0;

b=0;

if (n>=0)

{ for (i=1; i<=n; i+=2)

{a=a+i;

}

for (k=2; k<=n; k+=2)

{b=b+k;

}

r=a-b;

printf (“suma wynosi %d”, r);

}

else {printf (“blad”);

}

getch();

}

P3 while

#include <stdio.h>

#include <conio.h>

void main()

{int n,r,a,b,i,k;

printf (“podaj n= “);

scanf (“%d”, &n);

a=0;

b=0;

if (n>=0)

{

i=1;

while (i<=n)

{a+=i; i+=2;

}

k=2;

while (k<=n)

{b+=k; k+=2;

}

r=a-b;

printf (“suma wynosi %d”, r);

}

else {printf (“blad”);

}

getch();

}

P4

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

int n,i,k,p;

double s;

float x;

char znak;

printf (“podaj n= “);

scanf (“%d”, &n);

printf (“podaj x= “);

scanf (“%f”, &x);

p=1;

s=1;

if (n>=0)

{

printf (“1 – silnia \n2 – potega\n”);

flushall();

znak=getchar();

switch (znak)

{

case’1′:

if (n<=20)

{

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

{ s*=i;}

printf (” %d ! = %lf \7″, n,s);

}

else { printf(“blad \7″);} break;

case’2′:

for (k=1,p=x;k<n;k++)

{

x=x*p;

}

printf(“potega wynosi: %f \7″,x);break;

default: printf(“brak opcij”); }

}

getch();

}

P5

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{

int n,k,l,i;

float m,c,s,r;

printf(“n= “);

scanf(“%d” , &n);

s=0;

c=0;

printf(“n= %d”,n);

for(i=0,l=-1,m=0.5;i<n*0.5;i++)

{c+=(l+=2)/(m*=4);}

for(i=1,l=0,m=1;i<=n*0.5;i++)

{ s+=(l+=2)/(m*=4);}

r=c-s;

printf(“\nr= %f”, r);

printf(“\nc= %f \ns= %f \nn= %d”, c,s,n);

getch();

}

P6

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{

int n,i,m;

float s;

printf(“n= “);

scanf(“%d”, &n);

s=0;

for (i=0;((3*i)+1)<=n;i++)

{

if (i%2==0) {s+=(1/float(1+(3*i)));}

else {s-=(1/float(1+(i*3)));}

}

printf(“suma wynosi= %f”,s);

getch();

}

P8

#include <stdio.h>

#include <conio.h>

void main()

{

int i,h,a,l,s,t,p,m,f,k,b;

printf(“H= “);

scanf(“%d”,&h);

//definiowanie zmiennych

p=h-1;

a=0;

l=1;

s=1;

k=1;

f=1;

b=1;

//menu

printf(“\n 1-opcja pierwsza \n 2-opcja druga \n 3-opcja trzecia \n”);

flushall();

t=getch();

switch(t) {

case ’1′: //piramida wyrownana do lewej

for(i=1;i<=h;i++)

{

a+=i;

}

for(i=1;i<=a;i++)

{

printf(“x”);

if(i==s)

{

printf(“\n”);

l+=1;

s+=l;

} else

{

l+=0;

}

}

break;

case ’2′: //piramida wyrownana do prawej

for(i=1;i<=h;i++)

{

a+=i;

}

for(i=1;i<=a;i++)

{

if(i==k)

{

for(m=1;m<=p;m++)

{

printf(” “);

}

k+=f;

f+=1;

p–;

}

printf(“x”);

if(i==s)

{

printf(“\n”);

l+=1;

s+=l;

} else

{

l+=0;

}

}

break;

case ’3′: //piramida wysrodkowana

for(i=1;i<=h;i++)

{

a+=b;

b+=2;

}

for(i=1;i<=a;i++)

{

if(i==k)

{

for(m=1;m<=p;m++)

{

printf(” “);

}

k+=f;

f+=2;

p–;

}

printf(“x”);

if(i==s)

{

printf(“\n”);

l+=2;

s+=l;

} else

{

l+=0;

}

};

break;

default:

printf(“\n brak opcij\7\7\7\7″);

break;

}

getch();

}

Zagadnienia:

projektowanie algorytmów z wykorzystaniem funkcji; przekazywanie parametrów do funkcji

przez wartości; obliczanie sum szeregów; wykres funkcji w trybie tekstowym.

1. Opracować funkcję, która oblicza średnią arytmetyczną dwóch liczb rzeczywistych

przekazywanych do funkcji przez wartości za pomocą argumentów x i y. W programie

głównym wywołać funkcję dla danych wejściowych wczytywanych z klawiatury.

Prototyp funkcji: double SR(double x, double y).

2. Opracować funkcję, która dla x rzeczywistego oblicza sumę szeregu

E(x) = 1 + x1 / 1! + x2 / 2! + x3 / 3! + … + xi / i! + … .

Obliczenia należy zakończyć dla wyrazu o numerze i, dla którego | xi / i! | < EPS, gdzie

EPS=1E-8 jest stałą w programie (obliczanie ex z dokładnością EPS=10-8).

Zrealizować dwa warianty funkcji:

a) obliczającą sumę szeregu w oparciu o standardową funkcję podnoszenia do potęgi pow;

b) obliczającą sumę szeregu bez użycia funkcji pow.

Porównać wyniki z wartościami otrzymanymi za pomocą standardowej funkcji exp(x).

Prototyp funkcji: double E(double x, double eps);

3. Opracować funkcję, która oblicza sumę n pierwszych wyrazów szeregu przybliżającego

wartość sin(x) dla x typu rzeczywistego. Przyjąć, że x oraz n są argumentami funkcji.

S(x,n) = x1 / 1! – x3 / 3! + x5 / 5! – x7 / 7! + … ± x(2i-1) / (2i-1)! + …

Wartości zmiennej i są liczbami naturalnymi (i=1, 2, 3, …). Porównać wartość funkcji

S(x,n) dla wybranych x i n (np. x=2; n=8) z wartością standardowej funkcji sin(x). Dla

dużych n powinno być sin(x) S(x,n). Prototyp funkcji: double S(double x, int n).

4. Opracować funkcję, która oblicza sumę n pierwszych wyrazów szeregu przybliżającego

wartość arcsin(x) dla x typu rzeczywistego. Przyjąć, że x oraz n są argumentami funkcji.

A(x,n) = x + 1x3 / (23) + 13x5 / (245) +

+ 135x7 / (2467) + 1357x9 / (24689) + …

Porównać wartość funkcji A(x,n) dla wybranych x i n (np. x=0.9; n=8) z wartością

standardowej funkcji asin(x). Dla dużych n powinno być asin(x) A(x,n). Prototyp

funkcji: double A(double x, int n).

5. Opracować funkcję, która rysuje w trybie znakowym wykres funkcji sin(x) w przedziale

od 0 do k*M_PI, gdzie M_PI jest stałą pi, natomiast k jest liczbą naturalną wczytywaną z

klawiatury. Przyjąć, że: oś Y przechodzi przez początek ekranu i jest skierowana w dół

ekranu, natomiast oś X przechodzi przez środek ekranu i jest skierowana w prawo.

Prototyp funkcji: void Rysuj(int k).

6. Opracować funkcję, która wyznacza sumę cyfr liczby naturalnej x, np. dla x=237 suma

cyfr wynosi 12. W programie głównym wywołać funkcję dla x wczytywanego z

klawiatury. Prototyp funkcji: int SC(int x).

pr1

#include<stdio.h>

#include<conio.h>

double SR(double x,double y)

{

double w=(x+y)/2;

return w;

}

double WCZYTANIE(double& a,double& b)

{

printf(“a= “);

scanf(“%lf”, &a);

printf(“b= “);

scanf(“%lf”, &b);

return 0;

}

void main()

{

double a,b;

WCZYTANIE(a,b);

printf(“srednia= %lf”,SR(a,b));

getch();

}

Pr2a

#include<stdio.h>

#include<conio.h>

#include<math.h>

double E(double x,double eps)

{

int i=1;

double s=1,k=1,m=0;

do

{

k*=i;

m=((pow(x,i))/k);

s+=m;

i++;

}

while(m>eps);

printf(“e= %.8lf \n”, s);

return s;

}

void main()

{

double e=0.00000001;

double a,s;

printf(“podaj x: \n”);

scanf(“%lf”, &a);

E(a,e);

s=exp(a);

printf(“e= %.8lf”,s);

getch();

}

Pr2b

#include<stdio.h>

#include<conio.h>

#include<math.h>

double E(double x,double eps)

{

int i=1;

double s=1,k=1,m,t=x;

do

{

k*=i;

t*=x;

m=((pow(x,i))/k);

s+=m;

i++;

}

while(m>eps);

printf(“e= %.8lf \n”, s);

return s;

}

void main()

{

double e=0.00000001;

double a,s;

printf(“podaj x: \n”);

scanf(“%lf”, &a);

E(a,e);

s=exp(a);

printf(“e= %.8lf”,s);

getch();

}

Pr3

#include<stdio.h>

#include<conio.h>

#include<math.h>

double S(double x,int n)

{int i,k;

double p,t,m,s,w,a,wynik;

for(i=1,m=1,a=1,t=1,s=0;i<=n;i+=4)

{

for(k=1;k<=i;k++)

{

m*=a;

t*=x;

p=t/m;

a++;

}

s+=p;

}

for(i=3,m=1,a=1,t=1,w=0;i<=n;i+=4)

{

for(k=1;k<=i;k++)

{

m*=a;

t*=x;

p=t/m;

a++;

}

w+=p;

}

wynik=(s-w);

printf(“sin= %lf”, wynik);

return wynik;

}

void main()

{

double x,l;

int n;

printf(“x= “);

scanf(“%lf”,&x);

printf(“n= “);

scanf(“%d”,&n);

S(x,n);

l=sin(x);

printf(“\n sin= %lf”,l);

getch();

}

Pr3+

#include<stdio.h>

#include<conio.h>

#include<math.h>

double S(double x,int n)

{int i,k;

double p,t,m,s,w,a,wynik,o,f;

for(i=1,o=1,s=0;i<=n;i+=2)

{

for(k=1,m=1,a=1,t=1;k<=o;k++)

{

m*=a;

t*=x;

p=t/m;

a++;

}

o+=4;

s+=p;

}

for(f=2,w=0,o=3;f<=n;f+=2)

{

for(k=1,m=1,a=1,t=1;k<=o;k++)

{

m*=a;

t*=x;

p=(t/m);

a++;

}

o+=4;

w+=p;

}

wynik=(s-w);

printf(“sin= %lf”, wynik);

return wynik;

}

void main()

{

double x,l;

int n;

printf(“x= “);

scanf(“%lf”,&x);

printf(“n= “);

scanf(“%d”,&n);

S(x,n);

l=sin(x);

printf(“\n sin= %lf”,l);

getch();

}

Pr4

#include<conio.h>

#include<stdio.h>

#include<math.h>

double A(double x,int n)

{

int i;

double l,k,s,t,m;

for(i=0,k=1,s=1,t=1,l=0,m=1;i<n;i++)

{

l+=(s*pow(x,k))/(t*k);

s*=k;

k+=2;

m*=2;

t*=m;

}

return l;

}

void main()

{

double x,k;

int n;

printf(“podaj x \n”);

scanf(“%lf”,&x);

printf(“podaj n \n”);

scanf(“%d”,&n);

printf(“\n %lf”,A(x,n));

getch();

}

Pr5

#include<stdio.h> //80,31

#include<conio.h>

#include<math>

const double M_Pi=3.14;

void OS()

{

int i;

printf(“\n\n y ^”);

printf(“\n\n 1″);

gotoxy(1,14);

printf(“0,5″);

gotoxy(2,24);

printf(“0″);

gotoxy(2,34);

printf(“-0,5″);

gotoxy(2,43);

printf(“-1″);

for(i=4;i<45;i++)

{

gotoxy(4,i);

printf(“\1″);

}

for(i=4;i<80;i++)

{

gotoxy(i,24);

printf(“\1″);

}

printf(“>”);

}

void Rysuj(int k)

{

int i,t;

double y,x,a;

for(i=0,x=0,a=-1;i<76;i+=1)

{

for(t=0;t<10000000;t++){}

y=(int(sin(x)*20));

if(y<0) {gotoxy(i+4,fabs(y)+24);printf(“\5″);} else

if(y==0) {gotoxy(i+4,y+24);printf(“\5″);a++;}

else if(y>0) {gotoxy(i+4,fabs(-y+24));printf(“\5″);}

x+=M_Pi/6;

if(a==k) {gotoxy(i+4,y+25);printf(“%d pi”,k);i=80;};

}

}

void main()

{

int n;

OS();

gotoxy(1,1);

printf(“podaj przedzial: “);

scanf(“%d”,&n);

Rysuj(n);

getch();

}

Pr5super

#include<stdio.h> //80,31

#include<conio.h>

#include<math.h>

const double M_Pi=3.14;

void OS()

{

int i,t;

printf(“\n y ^”);

printf(“\n\n 1″);

gotoxy(1,14);

printf(“0,5″);

gotoxy(2,24);

printf(“0″);

gotoxy(2,34);

printf(“-0,5″);

gotoxy(2,43);

printf(“-1″);

for(i=4;i<45;i++)

{for(t=0;t<1000000;t++) {}

gotoxy(4,i);

printf(“\1″);

}

for(i=4;i<80;i++)

{for(t=0;t<1000000;t++) {}

gotoxy(i,24);

printf(“\1″);

}

printf(“>”);

}

void Rysuj(int k)

{

int i,t;

double y,x,a,s;

//warunki rozciągnięcia sinusa

if(k==1) {s=62;} else if(k==2) {s=36;} else if (k<5) {s=18;} else if(k<7) {s=12;}

if(k>=7 && k<13) {s=6;} else if(k>=13 && k<16) {s=5;} else if(k>=16 && k<19) {s=4;}

else if(k>=19) {s=2;};

//koniec

for(i=0,x=0,a=-1;i<76;i+=1)

{

for(t=0;t<10000000;t++) {}

y=(int(sin(x)*20));

if(y<0) {gotoxy(i+4,fabs(y)+24);printf(“\5″);} else

if(y==0) {gotoxy(i+4,y+24);printf(“\5\7″);a++;}

else if(y>0) {gotoxy(i+4,fabs(-y+24));printf(“\5″);}

x+=M_Pi/s;

if(a==k) {gotoxy(i+4,y+25);printf(“%d\7\7 pi”,k);i=80;};

}

}

Pr6

void main()

{

int n;

gotoxy(1,1);

printf(“podaj przedzial: “);

scanf(“%d”,&n);

OS();

Rysuj(n);

getch();

}

#include<stdio.h>

#include<conio.h>

int SC(int x)

{

int i,k,s,w,r;

for(k=x,i=0,s=1,w=0,r=0;s!=0;i++)

{

s=int(k/10);

r=k%10;

k=s;

w+=(r);

}

return w;

}

void main()

{

int a;

printf(“a= “);

scanf(“%d”,&a);

if(a>0)

{

printf(“%d”,SC(a));

} else

{

printf(“to nie liczba naturalna”);

}

getch();

}

Zagadnienia:

poznanie zastosowań instrukcji warunkowych if, if-else oraz instrukcji wyboru switch;

programy rozgałęzione; typy proste definiowane przez użytkownika – typ wyliczeniowy

(enum).

1. Wczytać z klawiatury 3 zmienne typu double. Wyznaczyć liczbę minimalną stosując:

a) tylko operator warunkowy (?).

b) tylko instrukcje warunkowe (if lub if-else).

2. Opracować program rozwiązujący równanie kwadratowe ax2 + bx + c = 0. Rozpatrzyć

przypadki szczególne: a=0 & b=0 & c=0, a=0 & b=0 & c<>0, a=0 & b<>0 & c<>0,

a=0 & b<>0 & c=0, a<>0 & b=0 & c=0, a<>0 & b=0 & c<>0, a<>0 & b<>0 & c<>0,

a<>0 & b<>0 & c=0.

3. Określić przez, które ćwiartki układu współrzędnych (lub oś X) przechodzi prosta postaci

y=ax+b, gdzie a i b są danymi wczytywanymi z klawiatury. Na przykład, dla a=2; b=2;

prosta y=2x+2 przechodzi przez 1, 2 i 3 ćwiartkę; dla a=b=0; prosta y=0 pokrywa się z

osią X.

4. Opracować program, który zamienia współrzędne kartezjańskie (x,y) na współrzędne

biegunowe (d,k), gdzie d i k są zadane wzorami:

d = sqrt(x2 + y2),

I ćwiartka: k = arctg(y/x) dla x>0 & y>=0; k = pi/2 dla x=0 & y>=0;

II, III: k = pi + arctg(y/x) dla x<0 & y – dowolny;

IV: k = 2pi + arctg(y/x) dla x>0 & y<0; k = 3pi/2 dla x=0 & y<0.

5. Wprowadzić z klawiatury rok, miesiąc i dzień. Jeżeli data jest poprawna, tj. dzień < 32,

miesiąc < 13, styczeń < 32, luty < 30 w roku przestępnym oraz luty < 29 w roku

zwykłym, marzec < 32, itd., to wyprowadzić na ekran datę (miesiąc słownie). Uwzględnić

lata przestępne. Przyjąć, że rok nie jest przestępny (rok zwykły) jeśli: nie dzieli się przez 4

lub dzieli się przez 100, ale nie przez 400 (np. lata zwykłe: 1700, 1800, 2100; lata

przestępne: 4, 1600, 1996, 2000, 2400). W szczególności data 29-02-1800 r. nie jest datą

poprawną.

6. Zadeklarować zmienną dzien typu wyliczeniowego Tdni reprezentującą dni tygodnia

{pon, wt, sr, czw, pt, sob, niedz}. Zainicjować zmienną dzien w programie. Przyjmując,

że zmienna dzien jest selektorem instrukcji wyboru switch wyprowadzić pełną nazwę dnia

tygodnia.

7. Opracować program kalkulatora uwzględniającego działania (+, -, /, *) oraz funkcje: sin,

cos, tan, asin, acos, atan, log, log10, exp, pow, ldexp(x,n)=x2n, sqrt, fabs, fmod, ceil,

floor, abs.

8. Opracować program, który wyprowadza na ekran kod wciśniętego klawisza. Uwzględnić

klawisze specjalne, np. F1, F2, strzałki. Podać kody klawiaturowe strzałek i F1-F10.

P1a

#include<stdio.h>

#include<conio.h>

void main()

{double a,b,c;

printf(“a= “);

scanf(“%lf”, &a);

printf(“b= “);

scanf(“%lf”, &b);

printf(“c= “);

scanf(“%lf”, &c);

(a<b && a<c) ? printf(“liczba min: %lf”, a) : (a>b && b<c) ? printf(“liczba min: %lf”, b) :

(c<b && c<a) ? printf(“liczba min: %lf”, c) : printf(“liczby sa rowne”);

getch();

}

P1b

#include<stdio.h>

#include<conio.h>

void main()

{double a,b,c;

printf(“a= “);

scanf(“%lf”, &a);

printf(“b= “);

scanf(“%lf”, &b);

printf(“c= “);

scanf(“%lf”, &c);

if(a<b && a<c) {printf(“liczba min: %lf”, a);}

else if(a>b && b<c){printf(“liczba min: %lf”, b);}

else if(c<b && c<a) {printf(“liczba min: %lf”, c);}else

{printf(“liczby sa rowne”);}

getch();

}

P2

#include<math.h>

#include<stdio.h>

#include<conio.h>

void main()

{

float a,b,c,del,x1,x2;

printf(“A= “);

scanf(“%f”, &a);

printf(“B= “);

scanf(“%f”, &b);

printf(“C= “);

scanf(“%f”, &c);

del=b*b-4*a*c;

if(a!=0) {

if(del<0) {printf(“pierwistki nie isnieja”);} else

if(del==0) {x1=(-b/(2*a)); printf(“x1=x2= %.2f”, x1);}

else{x1=(-b-sqrt(del))/(2*a); x2=(-b+sqrt(del))/(2*a); printf(“x1= %.2f x2= %.2f”, x1,x2);

}} else {printf(“funkcja liniowa”);}

getch();

}

P3

#include<stdio.h>

#include<conio.h>

void main()

{float a,b;

printf(“a= “);

scanf(“%f”, &a);

printf(“b= “);

scanf(“%f”, &b);

(a>0 && b>0) ? printf(“cwiartka: 1,2 i 3″) :

(a>0 && b<0) ? printf(“cwiartka: 1,3 i 4″) :

(a>0 && b==0) ? printf(“cwiartka: 1 i 3″) :

(a==0 && b>0) ? printf(“cwiartka: 1 i 2″) :

(a==0 && b==0) ? printf(“prosta pokrywa sie z osia OX”) :

(a==0 && b<0) ? printf(“cwiartka: 3 i 4″):

(a<0 && b>0) ? printf(“cwiartka: 1,2 i 4″):

(a<0 && b==0) ? printf(“cwiartka: 2 i 4″):

printf(“cwiartka: 2,3 i 4″);

getch();

}

P4

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{float x,y,d,k,pi=3.14;

printf(“x= “);

scanf(“%f”, &x);

printf(“y= “);

scanf(“%f”, &y);

d = sqrt(x*x + y*y);

if(x>0 && y>=0) {

k=atan(y/x);} else if (x==0 && y>=0) {

k=pi/2;} else if (x<0) {

k=pi + atan(y/x);} else if(x>0 && y<0) {

k=2*pi+atan(y/x);} else if(x==0 && y<0) {k=3*pi/2;} else {printf(“bledne k”);}

printf(“wspolrzedne biegunowe= (%.2f, %.2f)”, d,k);

getch();

}

P5

#include<stdio.h>

#include<conio.h>

void main()

{

int r,m,d;

printf(“rok: “);

scanf(“%d”, &r);

printf(“miesiac: “);

scanf(“%d”, &m);

printf(“dzien: “);

scanf(“%d”, &d);

if(m==1 && d<32 && d>0) { printf(“data: %d styczen %d”, d,r); } else if

(m==3 && d<32 && d>0) { printf(“data: %d marzec %d”, d,r); } else if

(m==4 && d<31 && d>0) { printf(“data: %d kwiecien %d”, d,r); } else if

(m==5 && d<32 && d>0) { printf(“data: %d maj %d”, d,r); } else if

(m==6 && d<31 && d>0) { printf(“data: %d czerwiec %d”, d,r); } else if

(m==7 && d<32 && d>0) { printf(“data: %d lipiec %d”, d,r); } else if

(m==8 && d<32 && d>0) { printf(“data: %d sierpien %d”, d,r); } else if

(m==9 && d<31 && d>0) { printf(“data: %d wrzesien %d”, d,r); } else if

(m==10 && d<32 && d>0) { printf(“data: %d pazdziernik %d”, d,r); } else if

(m==11 && d<31 && d>0) { printf(“data: %d listopad %d”, d,r); } else if

(m==12 && d<32 && d>0) { printf(“data: %d grudzien %d”, d,r); } else if(m==2)

{if(r%4!=0 ||(r%100==0 && r%400!=0)) {(d<29) ? printf(“data: %d luty %d”, d,r) : printf(“blad”); }

else {(d<30) ? printf(“data: %d luty %d”, d,r) : printf(“blad2″); }}

else {printf(“Nieprawidlowa data”);}

getch();

}

P6

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{int tdni, i;

printf(“podaj 3 pierwsze litery dnia \n”);

scanf(“%i”, i);

enum tdni{pon, wto, sro, czw, pia, sob, nie};

tdni dni;

switch(tdni) {

case pon: printf(“poniedzialek”); break;

case wto: printf(“wtorek”); break;

case sro: printf(“sroda”); break;

case czw: printf(“czwartek”); break;

case pia: printf(“piatek”); break;

case sob: printf(“sobota”); break;

case nie: printf(“niedziela”); break;

default: printf(“nie ma takiego dnia”);}

getch();

}

P6+

#include <stdio.h>

#include <conio.h>

void main()

{

enum Tdni

{ pon,wt,sr,czw,pt,sob,niedz

} ;

Tdni dzien ;

dzien = sr ;

switch (dzien)

{

case pon : printf(“Poniedzialek”) ; break ;

case wt : printf(“Wtorek”) ; break ;

case sr : printf(“Sroda”) ; break ;

case czw : printf(“Czwartek”) ; break ;

case pt : printf(“Piatek”) ; break ;

case sob : printf(“Sobota”) ; break ;

case niedz : printf(“Niedziel”) ; break ;

}

getch();

P7

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main ()

{

float a,b,w;

char znak;

printf (“a= “);

scanf (“%f”, &a);

printf (“b= “);

scanf (“%f”, &b);

flushall();

znak=getchar();

switch (znak)

{

case ‘+’: w=a+b; printf(“wynik: %f”, w); break;

case ‘-’: w=a-b; printf (“wynik: %f”, w); break;

case ‘/’: w=a/b; printf (“wynik: %f”, w); break;

case ‘*’: w=a*b; printf (“wynik: %f”, w); break;

case ‘s’: w=sin(a); printf (“wynik: %f”, w); break;

case ‘c’: w=cos(a); printf (“wynik: %f”, w); break;

case ‘t’: w=tan(a); printf (“wynik: %f”, w); break;

case ’1′: w=asin(a); printf (“wynik: %f”, w); break;

case ’2′: w=acos(a); printf (“wynik: %f”, w); break;

case ’3′: w=atan(a); printf (“wynik: %f”, w); break;

case ’4′: w=log(a); printf (“wynik: %f”, w); break;

case ’5′: w=log10(a); printf (“wynik: %f”, w); break;

case ’6′: w=log(b)/log(a); printf (“wynik: %f”, w); break;

case ’7′: w=exp(a); printf (“wynik: %f”, w); break;

case ’8′: w=pow(a,b); printf (“wynik: %f”, w); break;

case ’9′: w=fabs(a); printf (“wynik: %f”, w); break;

case ’0′: w=fmod(a,b); printf (“wynik: %f”, w); break;

case ‘q’: w=ceil(a); printf (“wynik: %f”, w); break;

case ‘f’: w=floor(a); printf (“wynik: %f”, w); break;

case ‘a’: w=abs(a); printf (“wynik: %f”, w); break;

}

getch();

}

P8

#include<stdio.h>

#include<conio.h>

void main()

{float a;

printf (“Press any key \n”);

a=getch();

if (a==0) {

getch();

}

printf(“kod Ascii= %f”, a);

getch();

}

Join Us on Facebook !

Synku, sprawdz czy cie nie ma w innym budynku.

Synku, sprawdz czy cie nie ma w innym budynku.

Moje Last.fm

mickimouse's Profile Page

 

Listopad 2008
P W Ś C P S N
    gru »
 12
3456789
10111213141516
17181920212223
24252627282930

Wpisy na slowiczku

wpisz swoj email by subskrybować - gdy pojawi sie nowy post zostaniesz o tym poinformowany na maila :D

Kategorie

Blog Stats

  • 27,369 hits

free counters

FB

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.