czesc11 dod




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 dod
czesc13 dod
DoD Joint Services Weapon Safety Review Process
dod
Mah1 2 dod
DOD Net Centric Data Strategy and Community of Interest (COI) Training Glossary
ZJ SL 09 wyklad 1 dod A
dod z2
cwiczenia analogie dod ODP
CZESC1 (2)
Motywacja i emocje w sluzbie reklamy czesc1
Kolokwium 2 2012 13 (termin dod )
czesc12
dod teoria błędów

więcej podobnych podstron