Zespół Szkół Elektryczno-mechanicznych
Praca kontrolna z PSO
Opracował:
Artur Bojko
Legnica rok szkolny 2009/2010
Zadanie 1
#include <iostream>
#include <stdlib.h>
using namespace std;
int tab[10];
void zer()
{
for (int a = 0; a < 10; a++)
{
tab[a] = 0; //całej tablicy przypisuje zera
} //proste i genialne jak niemożesz usunąć to to zmień na nic
}
void los()
{
srand (time(NULL));
for(int a=0;a<10;a++)
{
tab[a] = rand()%100; // pseudo losowa liczba jest wpisywana w tablicę
}; // rand podaje ilość cykli procesora w 0.01s
};
int Max()
{
int max = tab[0];
for(int a = 0; a < 10; a++)
{
if(tab[a]>max) max = tab[a]; //jeśli liczba jest wieksza od poprzedniej
} //to jest zapisywana i sprawdzana z kolejną
return max;
}
int Min()
{
int min = tab[0];
for(int a = 0; a < 10; a++)
{
if(tab[a]<min) min = tab[a]; //jeśli liczba jest mniejsza od poprzedniej
} //to jest zapisywana i sprawdzana z kolejną
return min;
}
double sre()
{
int su;
for(int a = 0; a < 10; a++)
{
su+=tab[a]; //sumujemy wartość z tablicy z wartością su
}
return su / 10;
}
int powt(int n)
{
int su = 0;
for(int a = 0; a < 10; a++)
{
if(tab[a] == n) su++; //jeśli a jest takie samo jak n
} //to su jest zwiększane o 1
return su;
}
int podz(int n)
{
int su = 0;
for(int a = 0; a < 10; a++)
{
if( (tab[a] % n) == 0) // jeśli reszta jest zerem to liczba jest
{ //podzielna przez liczbę podaną
su++;
};
}
return su;
}
int main()
{ //dalej są już tylko komendy wywołuwawczei ze dwie pentle,
system("color 04"); //w tej linijce czerwony kolor tekstu
cout << "Zerowanie tablicy" << endl << endl;
zer();
cout << "Wypelnianie tablicy..." << endl << endl;
los();
cout << "Najwieksza wartosc w tablicy wynosi : " << Max() << endl << endl;
cout << "Najmniejsza wartosc w tablicy wynosi: " << Min() << endl << endl;
cout << "Srednia elementow : " << sre() <<"\n";
cout << "Ilość powtużeń jakiej liczby chcesz sprawdzić?";
cout<<"Podaj tę liczbę: ";
int wyli; cin >> wyli;
if(powt(wyli) == 0) cout << "Wprowadzona liczba nie zostala wylosowana ani razu.\n";
else if (powt(wyli) == 1) cout << "Podana liczna zostala wylosowana 1 raz ";
else cout << "Podana liczna zostala wylosowana " << powt(wyli) << " razy.\n";
cout << "Podaj liczbę dla kturej chcesz sprawdzić dzielniki wylosowane w tablicy.\n";
cout<<"Liczba to: ";
cin >> wyli;
podz(wyli);
cout <<"Takich liczb w tablicy jest: " << podz(wyli)<<"\n";;
system("pause");
return 0;
}
Zadanie 2
Zadanie 3
#include <iostream>
#include <string.h>
using namespace std;
string im;
string naz;
string przed[5];
double oc[5];
int jed,sum;
double sre;
int main()
{
system("color 04");
cout << "Podaj imię ucznia: "; cin >> im;
cout << "Podaj nazwisko ucznia: "; cin >> naz;
cout<<"\n";
for(int a = 0; a < 5; a++)
{
cout << "Podaj przedmiot : "; cin >> przed[a];
}
cout <<"\n";
for(int a = 0; a < 5; a++)
{
cout << "Podaj ocene z przedmiotu " << przed[a] << ": "; cin >> oc[a];
}
cout <<"\n";
sum=oc[0]+oc[1]+oc[2]+oc[3]+oc[4];
sre=sum/5;
for(int a = 0; a < 5; a++)
{
if(oc[a] == 1) jed++;
}
switch(jed)
{
case 0:
cout << "Uczen zdal do nastepnej klasy. Jego srednia to: " << sre <<"\n";
break;
case 1:
cout << "Uczen ma 1 poprawke. Jego srednia to: " << sre<<"\n";
break;
default:
cout << "Uczeń niezdał\n";
break;
}
system("pause");
return 0;
}
Zadanie 4
Sortowanie metoda bąbelkową polega na porównywaniu dwóch kolejnych liczb. Tak więc jeśli mamy 4,18,5,3 porównujemy najpierw 4 z 18, druga jest większa więc poruwnujemy 18 z 5, tym razem ta pierwsza jest większa więc zamieniamy miejscami 18 z 5, teraz mamy 4,5,18,1. następnie porównujemy 18 z 1. Zamieniamy je miejscami. Teraz od początku. Porównujemy 4 z 5 druga jest większa więc zostają na swoich miejscach, 5 z 1 i je zamieniamy. W tym momencie mamy 4,1,5,18, porównujemy 5 z 18 zostają na sowich miejscach. Znowu zaczynamy od początku. 4 z 1, zamieniamy je miejscami, 4 z 5, 5 z 18. W tym momencie po raz ostatni porównujemy wszystkie liczby, w poszukiwaniu przesunięć, gdy żadnych nie znajdujemy mamy posegregowane liczby.
#include <iostream>
using namespace std;
int tab[4]={111,65,1,34}; //tablica cztero elementowa
int pam; //trzeci kubek czyli zmienna do przenoszenia
int main()
{
system("color 04");
cout<<"Metoda bombelkowa\n";
cout<<"Tablica niepoukladana wyglada tak:\n";
for(int a=0; a<4; a++) //pentla zwraca wartosci w tablicy
{
cout<<"Wartosc "<<a+1<<" tablicy to: "<<tab[a]<<" \n";
};
cout<<"A to już poukładana tablica\n";
for(int tabli=0; tabli<2; tabli++)
{
for (int a=0, b=1; a<3; a++, b++) //pentla do porównywania
{ //dwuch kolejnych liczb
if (tab[a]>tab[b])
{ //jeśli warunek jest spełniony
pam=tab[b]; //liczby zamieniają się miejscami
tab[b]=tab[a];
tab[a]=pam; //tzw trzeci kubek do przechowywania liczby
pam=0;
};
};
};
for(int a=0; a<4; a++) //wydrukowuje uporządkowane liczby
{
cout<<"wartosc "<<a+1<<" tablicy to: "<<tab[a]<<" \n";
};
system("pause");
return 0;
}
Programowanie strukturalne i obiektowe
Semestr 1
Artur Bojko 6