ROZWIĄZANIA
PRZYKŁADOWYCH ZADAŃ |
ZADANIE_1
Zdefiniuj typ strukturalny oraz 100-elementową tablicę
pozwalającą przechowywać
informacje o książkach w bibliotece (tytuł, autor, indeks, cena)
oraz napisz funkcję, która wyświetli na ekranie wszystkie dane tanich książek
(tzn. cena<10zł).
ZADANIE_2
Zdefiniuj typ strukturalny oraz 50-cio elementową
tablicę struktur pozwalającą przechowywać
informacje o pracownikach fabryki (nazwisko, stanowisko, płeć, pensja)
Napisz funkcję, która policzy średnią pensję kobiet w tej fabryce.
ZADANIE_3
Zdefiniuj strukturę przechowującą dane zestawu
komputerowego w sklepie
(nazwa_zestawu = 50 znaków; typ procesora = 20 znaków; częstotliwość zegara
= liczba całkowita
dodatnia; cena_zestawu = liczba rzeczywista) oraz 20-elementową tablicę takich
struktur.
Napisz funkcję wyznaczającą indeks najtańszego zestawu z procesorem "AMD
Athlon".
ZADANIE_4
Zdefiniuj typ struktury przechowującej dane
personalne pracownika
(nazwisko - 20 znaków; imię - 15 znaków; pensja - liczba rzeczywista;
płeć - znak 'm' lub znak 'k') oraz 100-elementową tablicę takich struktur.
Napisz funkcję sprawdzającą czy w danej firmie średnia pensja jest większa
od 3000 zł.
ZADANIE_5
Zdefiniuj typ struktury przechowującej dane
rezerwacji w hotelu
(termin_rezerwacji = 30 znaków; nazwisko = 25 znaków; typ_pokoju = litera;
ilosc_miejsc = liczba całkowita) oraz 100-elementowa tablicę takich
struktur.
Napisz funkcję zliczającą ilość rezerwacji na nazwisko "Kowalski".
ZADANIE_6
Zdefiniuj typ struktury przechowującej dane o połączeniach
autobusowych
(Miasto docelowe: 30 znaków; długosc_trasy : liczba całkowita bez znaku;
godzina odjazdu: liczba rzeczywista; cena_biletu - złote i grosze)
oraz 500-elementową tablicę takich struktur.
Napisz funkcję wyznaczającą średnią cenę biletu dla trasy krótszej niż
10km.
Zdefiniuj typ
strukturalny oraz 100-elementową tablicę pozwalającą przechowywać
informacje o książkach w bibliotece (tytuł, autor, indeks, cena)
oraz napisz funkcję, która wyświetli na ekranie wszystkie dane tanich książek
(tzn. cena<10zł).
#include <iostream.h>
//definicja typu strukturalnego
struct Tksiazka
{
char tytul[50];
char autor[30];
unsigned indeks;
float cena;
};
//definicja 100-elementowej tablicy struktur
Tksiazka biblioteka[100];
//definicja funkcji wyświetlającej "tanie" książki (o cenie < 10zł)
void WyswietlTanieKsiazki( Tksiazka b[ ], int ilosc_ks )
{
bool jest=false;
cout << endl << "Lista tanich ksiazek:";for(int i=0; i<ilosc_ks; i++)
if( b[i].cena<10.00 )
{
cout << endl;
cout << endl << " Tytul: " << b[i].tytul;
cout << endl << " Autor: " << b[i].autor;
cout << endl << "Indeks: " << b[i].indeks;
cout << endl << " Cena: " << b[i].cena;
jest=true;
}
if( !jest )
cout << endl << "Lista jest pusta";
cout << endl << "Nacisnij klawisz ENTER";
cin.get();
}
Zdefiniuj typ
strukturalny oraz 50-cio elementową tablicę struktur pozwalającą
przechowywać
informacje o pracownikach fabryki (nazwisko, stanowisko, płeć, pensja)
Napisz funkcję, która policzy średnią pensję kobiet w tej fabryce.
#include <iostream.h>
//definicja typu strukturalnego
struct Tpracownik
{
char nazwisko[30];
char stanowisko[30];
char plec;
float pensja;
};
//definicja 50-cio elementowej tablicy struktur
Tpracownik fabryka[50];
//definicja funkcji wyliczającej średnią pensję kobiet
float SredniaPensjaKobiet( Tpracownik f[ ], int ilosc_prac )
{
float suma=0;int ilosc_kob=0;
for(int i=0; i<ilosc_prac; i++)
if( f[i].plec=='k' )
{
suma += f[i].pensja;ilosc_kob++;
}
if( ilosc_kob==0 )
{
cout << endl << "Ilosc kobiet=0. Nie mozna policzyc sredniej";return -1.0;
}
float srednia;
srednia = suma/ilosc_kob;
return srednia;
}
Zdefiniuj strukturę
przechowującą dane zestawu komputerowego w sklepie
(nazwa_zestawu = 50 znaków; typ procesora = 20 znaków; częstotliwość
zegara = liczba całkowita
dodatnia; cena_zestawu = liczba rzeczywista) oraz 20-elementową
tablicę takich struktur.
Napisz funkcję wyznaczającą indeks najtańszego zestawu z procesorem
"AMD Athlon".
#include <string.h>
struct TZestawKomputerowy
{
char nazwa[51];
char procesor[21];
unsigned zegar;
float cena;
};
TZestawKomputerowy sklep[20];
int IndeksNajtanszego( TZestawKomputerowy sklep[] )
{
int indeks=-1;
float najmniejsza_cena;
for(int i=0 ; i<20; i++)
if( strcmp(sklep[i].procesor, "AMD Athlon")==0 )
if( indeks==-1 || sklep[i].cena<najmniejsza_cena )
{
indeks=i;
najmniejsza_cena = sklep[i].cena;
}
return indeks;
}
Zdefiniuj typ
struktury przechowującej dane personalne pracownika
(nazwisko - 20 znaków; imię - 15 znaków; pensja - liczba rzeczywista; płeć
- znak 'm' lub znak 'k')
oraz 100-elementową tablicę takich struktur.
Napisz funkcję sprawdzającą czy w danej firmie średnia pensja jest większa
od 3000 zł
struct TDanePracownika
{
char nazwisko[21];
char imię[16];
float pensja;
char plec;
};
TDanePracownika lista_pracownikow[100];
bool CzyPensjaWieksza( TDanePracownika lista_pracownikow[],
int liczba_pracownikow )
{
if( liczba_pracownikow<=0 )
return false;
//obliczenie sumy pensji
float suma=0;
for(int i=0 ; i<liczba_pracownikow; i++)
suma += lista_pracownikow[i].pensja;
//sprawdzenie średniej pensji
if( suma/liczba_pracownikow > 3000 )
return true;
elsereturn false;
}
Zdefiniuj typ
struktury przechowującej dane rezerwacji w hotelu (termin_rezerwacji = 30
znaków;
nazwisko = 25 znaków; typ_pokoju = litera; ilosc_miejsc = liczba całkowita)
oraz 100-elementowa tablicę takich struktur.
Napisz funkcję zliczającą ilość rezerwacji na nazwisko
"Kowalski".
#include <string.h>
struct TRezerwacja
{
char termin[31];
char nazwisko[26];
char typ_pokoju;
int ilosc_miejsc;
};
TRezerwacja lista_rezerwacji[100];
int PoliczRezerwacjeKowalskiego( )
{
int licznik=0;
for(int i=0 ; i<100; i++)
if( strcmp(lista_rezerwacji[i].nazwisko,"Kowalski")==0 )
licznik++;
return licznik;
}
Zdefiniuj typ
struktury przechowującej dane o połączeniach autobusowych
(Miasto docelowe: 30 znaków; długosc_trasy : liczba całkowita bez znaku;
godzina odjazdu: liczba rzeczywista; cena_biletu - złote i grosze)
oraz 500-elementową tablicę takich struktur.
Napisz funkcję wyznaczającą średnią cenę biletu dla trasy krótszej niż
10km.
struct TPolaczenieAutobusowe
{
char miasto_docelowe[31];
unsigned dlugosc_trasy;
float godzina_odjazdu;
float cena;
};
TPolaczenieAutobusowe rozklad_jazdy[500];
float SredniaCena( TPolaczenieAutobusowe rozklad[],
int liczba_wszystkich_polaczen )
{
float suma_cen_wybranych=0;
int liczba_wybranych=0;
for(int i=0 ; i<liczba_wszystkich_polaczen; i++)
if( rozklad[i].dlugosc_trasy<10 )
{
suma_cen_wybranych += rozklad[i].cena;
liczba_wybranych++;
}
if( liczba_wybranych==0 )
return -1;else
return suma_cen_wybranych/liczba_wybranych;
}