W13 strukturalizacja szablony, PWR - Informatyka W4, podstawy programowania
[ Pobierz całość w formacie PDF ]
[p_00.cpp] // Przykładowy program ilustruj ą cy operacje na zwykłej tablicy liczb "float". // Operacja zapisania wczytanej "warto ś ci" do tablicy // oraz operacja wy ś wietlenia wskazanego elementu. // Bez kontrolowania poprawno ś ci indeksu ! #include <iostream.h> #include <conio.h> void main() { float TAB[50]; int pozycja; float x; cout << "Podaj zapisywana pozycje: "; cin >> pozycja; cout << "Podaj wartosc: "; cin >> x; TAB[pozycja] = x; cout << "Podaj odczytywana pozycje: "; cin >> pozycja; x = TAB[pozycja]; cout << "Odczytana wartosc: " << x; getch(); } M.Piasecki PODSTAWY PROGRAMOWANIA - 1 - Strukturalizacja, abstrakcja, szablony [p_01.cpp] // Program realizuj ą cy te same operacje co przykład [ p_00.cpp] // ale z zastosowaniem abstrakcyjnego interfejsu do tablicy // za pomoc ą funkcji // NIEFORMALNY OPIS FUNKCJI OPERUJ Ą CYCH NA TABLICY // // WstawElement - funkcja umieszczaj ą ca zadan ą <wartosc> // w li ś cie na zadanej <pozycji> // Podczas wykonywania tej operacji // powinna by ć kontrolowana poprawno ść (zakres) // wskazanej pozycji i sygnalizowana poprzez kod_bledu. // // PodajElement - funkcja zwracaj ą ca <wartosc> odczytan ą // z zadanej <pozycji> w li ś cie. // Podczas wykonywania tej operacji // powinna by ć kontrolowana poprawno ść (zakres) // wskazanej pozycji //FORMALNY INTERFEJS FUNKCJI void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc, int& kod_bledu); float PodajElement(float tablica[], int rozmiar, int pozycja, int& kod_bledu); #include <iostream.h> #include <conio.h> void main() { float TAB[50]; int kod_bledu; int pozycja; float x; cout << "Podaj zapisywana pozycje: "; cin >> pozycja; cout << "Podaj wartosc: "; cin >> x; WstawElement( TAB, 50, pozycja, x, kod_bledu); if( kod_bledu!=0 ) cout<<"\nWystapil blad zakresu podczas zapisu do tablicy\n"; cout << "Podaj odczytywana pozycje: "; cin >> pozycja; x = PodajElement( TAB, 50, pozycja, kod_bledu); if( kod_bledu!=0 ) cout<<"\nWystapil blad zakresu podczas odczytu z tablicy\n"; cout << "Odczytana wartosc: " << x; getch(); } M.Piasecki PODSTAWY PROGRAMOWANIA - 2 - Strukturalizacja, abstrakcja, szablony //PRZYKŁADOWA IMPLEMENTACJA FUNKCJI WstawElement i PodajElement void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc, int& kod_bledu) { if( pozycja<0 || pozycja>=rozmiar ) kod_bledu = 1; else { tablica[pozycja] = wartosc; kod_bledu = 0; } } float PodajElement(float tablica[], int rozmiar, int pozycja, int& kod_bledu) { if( pozycja<0 || pozycja>=rozmiar ) { kod_bledu = 1; return 0; } else { kod_bledu = 0; return tablica[pozycja]; } } M.Piasecki PODSTAWY PROGRAMOWANIA - 3 - Strukturalizacja, abstrakcja, szablony [p_02.cpp] // Operacja normalizacji zadanego indeksu // poprzez wskazanie najbli Ŝ szego elementu o poprawnym indeksie //-------------------------- OPIS FUNKCJI ------------------------- // Podczas wykonywania operacji na tablicy // zadana pozycja elementu powinna by ć normalizowana // poprzez wskazanie najbli Ŝ szego "poprawnego" indeksu // WstawElement - funkcja umieszczaj ą ca zadan ą <wartosc> // na zadanej <pozycji> w li ś cie // PodajElement - funkcja zwracaj ą ca przez list ę parametrów <wartosc> // odczytan ą z zadanej <pozycji> w li ś cie //-------------------------- INTERFEJS FUNKCJI --------------------- void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc); float PodajElement(float tablica[], int rozmiar, int pozycja); //-------------------------- PRZYKLADOWY PROGRAM ------------------------- #include <iostream.h> #include <conio.h> void main() { float TAB[50]; int pozycja; float x; cout << "Podaj zapisywana pozycje: "; cin >> pozycja; cout << "Podaj wartosc: "; cin >> x; WstawElement( TAB, 50, pozycja, x); cout << "Podaj odczytywana pozycje: "; cin >> pozycja; x = PodajElement( TAB, 50, pozycja); cout << "Odczytana wartosc: " << x; getch(); } //----- PIERWSZA WERSJA IMPLEMENTACJI OPERACJI WSTAWIANIA / POBIERANIA ------ void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc) { if( pozycja<0 ) pozycja = 0; if( pozycja>=rozmiar ) pozycja = rozmiar-1; tablica[pozycja] = wartosc; } float PodajElement(float tablica[], int rozmiar, int pozycja) { if( pozycja<0 ) pozycja = 0; if( pozycja>=rozmiar ) pozycja = rozmiar-1; return tablica[pozycja]; } M.Piasecki PODSTAWY PROGRAMOWANIA - 4 - Strukturalizacja, abstrakcja, szablony [p_02.cpp] [p_03.cpp] // Operacja cyklicznej normalizacji zadanego indeksu // poprzez wyznaczenie warto ś ci "modulo" //-------------------------- OPIS FUNKCJI ------------------------- // Podczas wykonywania operacji na tablicy // zadana pozycja elementu powinna by ć normalizowana // poprzez wyznaczenie warto ś ci "modulo" // // WstawElement - funkcja umieszczaj ą ca zadana <wartosc> // na zadanej <pozycji> w li ś cie // PodajElement - funkcja zwracaj ą ca przez list ę parametrów <wartosc> // odczytan ą z zadanej <pozycji> w li ś cie //-------------------------- INTERFEJS FUNKCJI --------------------- void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc); float PodajElement(float tablica[], int rozmiar, int pozycja); //-------------------------- PRZYKLADOWY PROGRAM ------------------------- #include <iostream.h> #include <conio.h> void main() { float TAB[50]; int pozycja; float x; cout << "Podaj zapisywana pozycje: "; cin >> pozycja; cout << "Podaj wartosc: "; cin >> x; WstawElement( TAB, 50, pozycja, x); cout << "Podaj odczytywana pozycje: "; cin >> pozycja; x = PodajElement( TAB, 50, pozycja); cout << "Odczytana wartosc: " << x; getch(); } //----- DRUGA WERSJA IMPLEMENTACJI OPERACJI WSTAWIANIA / POBIERANIA -------- void WstawElement(float tablica[], int rozmiar, int pozycja, float wartosc) { pozycja %= rozmiar; tablica[pozycja] = wartosc; } float PodajElement(float tablica[], int rozmiar, int pozycja) { pozycja %= rozmiar; return tablica[pozycja]; } M.Piasecki PODSTAWY PROGRAMOWANIA - 5 - Strukturalizacja, abstrakcja, szablony [p_03.cpp] [ Pobierz całość w formacie PDF ] |