Czesc11_dod
Część 11 - dodatek
pr111.cpp
------------------------------------------------------
#include<iostream.h> typedef struct{
char imie[30], nazwisko[30]; int wiek,
zarobki; }osoba;
void main() { osoba *wsk_osoba;
float * tab;
wsk_osoba = new osoba; //rezerwacja miejsca
cout << "Podaj imie -> "; cin
>> (wsk_osoba -> imie); cout << "Podaj
nazwisko -> "; cin >> (wsk_osoba ->
nazwisko); cout << "Podaj zarobki -> ";
cin >> (wsk_osoba -> zarobki);
cout << "Osoba " << (wsk_osoba -> imie) << "
" << (wsk_osoba -> nazwisko) << "
zarabia " << (wsk_osoba -> zarobki) << " zl";
delete wsk_osoba; //oddaje miejsce w pamieci
// Teraz zajme miejsce na tablice
cout << "\n\nTeraz tablica\n"; tab = new
float[100]; for (int i = 0; i < 100; i++)
{ tab[i] = i * 2.14;
cout << tab [i] <<", " ;
};
delete [] tab ; //zwalniam tablice;
}
pr112.cpp
------------------------------------------------------
#include<iostream.h> #include<stdlib.h>
#include<new.h>
typedef struct{ char imie[30], nazwisko[30];
int wiek, zarobki; }osoba;
long licznik = 0; void alarm() {
cout << "\nJuz nie dam rady. wyzionalem ducha przy osobie
numer " << licznik;
exit(1); }
void main() { osoba *wsk_osoba;
set_new_handler(alarm); while(1)
{ wsk_osoba = new
osoba; //Wiem ze nie ladnie postepuje nie
//zwracajac pamieci - ale
celowo licznik ++;
}
}
pr113.cpp
------------------------------------------------------
#include<iostream.h>
struct osoba{ char imie[30], nazwisko[30];
int wiek, zarobki; osoba *nastepna;
};
void main() { int i;
osoba *wsk_osoba, *pierwsza;
wsk_osoba = pierwsza = new osoba; //miejsce na pierwsz
osobe pierwsza->nastepna = NULL; //
zajmuje miejsce na nastepne 30 osob. TO BEDZIE LISTA
for(i = 0; i < 30; i++) {
wsk_osoba->nastepna = new osoba;
wsk_osoba = wsk_osoba->nastepna;
wsk_osoba->nastepna = NULL; //Liste koncze
NULL'em };
//A teraz zwolnie zajeta pamiec;
wsk_osoba = pierwsza->nastepna; while(1)
{
delete pierwsza;
if(wsk_osoba == NULL) break;
pierwsza = wsk_osoba;
wsk_osoba = pierwsza->nastepna;
}
}
pr113.cpp
------------------------------------------------------
#include<iostream.h>
struct osoba{ char imie[30], nazwisko[30];
int wiek, zarobki; osoba *nastepna;
};
void main() { int i;
osoba *wsk_osoba, *pierwsza;
wsk_osoba = pierwsza = new osoba; //miejsce na pierwsz
osobe pierwsza->nastepna = NULL; //
zajmuje miejsce na nastepne 30 osob. TO BEDZIE LISTA
for(i = 0; i < 30; i++) {
wsk_osoba->nastepna = new osoba;
wsk_osoba = wsk_osoba->nastepna;
wsk_osoba->nastepna = NULL; //Liste koncze
NULL'em };
//A teraz zwolnie zajeta pamiec;
wsk_osoba = pierwsza->nastepna; while(1)
{
delete pierwsza;
if(wsk_osoba == NULL) break;
pierwsza = wsk_osoba;
wsk_osoba = pierwsza->nastepna;
}
}
pr114.cpp
------------------------------------------------------
#include<iostream.h>
void fun(int *wsk_int) //argumentem tej funkcji jest wskaźnik
do
//zmiennej typu integer {
cout << "W fun wsk_int wskazuje na " <<
(*wsk_int); //widzimy to na co wskazuje
//wskaźnik wsk_int
*wsk_int = 3; //Zmieniam zawartść komórki na którą
wskazywał wsk_int
}
void main() { int a;
a = 5;
fun(&a); //jako parametr fun podajemy adres a (&a)
//przy takim
wywołanu możemy sie domyślać, że wartość a
// a ulegnie
zmianie
cout << "\nPod a mamy " << a ; //Pod a jest teraz
3
}
pr115.cpp
------------------------------------------------------
void fun(int *bla) {
for(int i=0; i < 10; i++) {
bla[i] = i; }
}
void main() { int tab[10];
fun(tab);
}
pr116.cpp
------------------------------------------------------
//Program z błędem i z oszukaniem kompilatora
#include<iostream.h>
void fun(const int *wsk) { int *ws;
/* Poniższe 3 linie są błędne *wsk = 2;
*(wsk + 2) = 2;
wsk[5] = 2; */
// Tak się da jednak oszukać kompilator
ws = (int *)wsk; //Tu świadomie rezygnujemy z
niezmienialności //tego
na co wskazuje wsk
*ws = 12345;
}
void main() {
int t[10] = {0};
int *wsk = t;
int i;
cout << "\nElementy tablicy przed wywołaniem fun -> " ;
for(i = 0; i <10; i++) { cout
<< t[i] << " ,"; }
fun(wsk);
cout << "\nElementy tablicy po wywołaniu fun -> ";
for(i = 0; i <10; i++) { cout
<< t[i] << " ,"; }
}
pr117.cpp
------------------------------------------------------
#include<iostream.h>
int pierwsza() {
cout << "\nTo ja Twoja funkcja pierwsza \n" ;
return 5;
}
float druga(int a , double licz) {
cout << "\nA to funkcja druga \nPrzesłałeś mi parametry -> "
<< a <<" oraz " << licz;
return 3.14;
}
void main() {
int (* wsk_fun) (); //wsk_fun jest wskaźnikiem na funkcję, króra ma
pustą //listę argumentów oraz
zwraca wartość typu int
float (* wsk_fun_float) (int, double); // wsk_fun jest wskaźnikiem na
funkcję,
//która ma dwa argumenty odpowiednio typu
//int i double oraz zwraca wartość typu float
wsk_fun = pierwsza;
wsk_fun_float = druga;
cout << "\nPierwsz wywołanie\n";
wsk_fun();
wsk_fun_float(8, 4.12);
cout << "\n\n\nDrugie wywołanie\n";
(* wsk_fun)();
(* wsk_fun_float)(5, 23.42);
}
pr118.cpp
------------------------------------------------------
#include<iostream.h>
void w_prawo() {
cout << "\nSkręcam w prawo --->>>\n" ;
}
void w_lewo() {
cout << "\n<<<--- Skręcam w lewo\n" ;
}
void gazu() {
cout << "\n!!!Wciskam do dechy!!!\n" ;
}
void stop() {
cout << "\n!!!Ostre hamowanie!!!\n"
<< "A nie mówiłem abyś zapiął pasy\n";
}
void main() {
void (* tab[4] )() = {w_prawo, w_lewo, gazu, stop};
int wybor;
cout << "\nZapnij pasy - ruszamy\ przyciśnij klawisz
gazu\n";
while(1) { cout
<< "\nTwój wybór\n" << "0 - skręć w
prawo\n" << "1 - skręć w lewo\n"
<< "2 - więcej gazu\n"
<< "3 - S T O P\n"
<< "4 - już wysiadam\n";
cin >> wybor; if( wybor ==
4) break;
else (tab[wybor])();
}
cout << "No to cześć\n"; }
pr119.cpp
------------------------------------------------------
#include<iostream.h> #include<conio.h>
void bar() {
cout << "\nCo podać ?\n" <<
"1 - Piwo\n" << "2 - Mleko\n\n";
if( getch() == '1') cout << "Proszę piwo\n";
else cout << "Proszę Mleeeeeeeko\n";
}
void szatnia() { cout << "\nSłużę
\n" << "1 - Oddanie ubrania\n"
<< "2 - Odebranie ubrania\n\n";
if( getch() == '1') cout << "Proszę oto bloczek\n";
else cout << "Proszę oto pańskie ubranie\n";
}
void wybor(char *komentarz, void (*wsk_fun)()) {
cout << komentarz << '\n';
wsk_fun(); //Tu wywołanie funkcji będącej argumentem funkcji
wybór
}
void main() {
cout << "Twój wybór:\n" << "1 -
idziesz do baru\n" << "2 - idziesz do
szatni\n";
cout << "Za pierwszym razem\n"; if (getch() == '1')
wybor("Wybrany został bar", bar); else wybor("Wybrana została
szatnia", szatnia);
cout << "\n\nJeszcze raz \n"; cout << "Twój
wybór:\n" << "1 - idziesz do baru\n"
<< "2 - idziesz do szatni\n";
cout << "Za drugim razem\n"; if (getch() == '1')
wybor("Wybrany został bar", bar); else wybor("Wybrana została
szatnia", szatnia);
}
Wyszukiwarka
Podobne podstrony:
czesc12 dodczesc13 dodDoD Joint Services Weapon Safety Review ProcessdodMah1 2 dodDOD Net Centric Data Strategy and Community of Interest (COI) Training GlossaryZJ SL 09 wyklad 1 dod Adod z2cwiczenia analogie dod ODPCZESC1 (2)Motywacja i emocje w sluzbie reklamy czesc1Kolokwium 2 2012 13 (termin dod )czesc12dod teoria błędówwięcej podobnych podstron