• Nie Znaleziono Wyników

Programowanie obiektowe. C++. Zaoczne. Ćwiczenie 1. Powtórzenie wiadomości

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie obiektowe. C++. Zaoczne. Ćwiczenie 1. Powtórzenie wiadomości"

Copied!
1
0
0

Pełen tekst

(1)

Programowanie obiektowe. C++. Zaoczne. Ćwiczenie 1.

Powtórzenie wiadomości Zagadnienia:

zapoznanie z przepisami BHP; warunki zaliczenia; prosty program w języku C++; skalarne typy danych; zmienne; standardowe, sformatowane wejście/wyjście w trybie znakowym (printf, scanf, cin, cout); wykonywanie programów w środowisku BC++ (praca krokowa, analiza zawartości zmiennych); organizacja pętli (for, while, do); projektowanie funkcji;

przekazywanie parametrów do funkcji; prototypy funkcji; funkcje typu inline; funkcje przeciążone; parametry domniemane funkcji; preprocesor i dyrektywy kompilatora;

projektowanie plików nagłówkowych (*.h); kompilowanie programów wielomodułowych;

tworzenie projektów.

1. Logowanie do systemu:

 podać nazwę użytkownika (np. pas100, pas101, itp.);

 usunąć z kartoteki roboczej wszystkie pliki (najczęściej jest to I:);

2. Uruchomić program bc.exe (system Borland C++). Zapoznać się z menu głównym (F10) oraz systemem pomocy (CTRL-F1). Wybrać z menu opcje File-New, a następnie zredagować w utworzonym oknie prosty program w postaci:

#include <stdio.h>

#include <iostream.h>

void main(void) { printf("Witaj_1\n"); cout << "Witaj_1\n"; }

Zapisać program za pomocą File-Save as lub wybierając F2. Skompilować program znajdujący się w aktywnym oknie za pomocą Compile-Compile (ALT-F9) lub Compile- Make (F9). Uruchomić program za pomocą Run-Run (CTRL-F9). Obejrzeć wyniki za pomocą Window-User screen (ALT-F5) lub Window-Output (okno ekranu).

Przetestować opcje umożliwiające: powiększanie okien (F5), zmianę rozmiarów okien (CTRL-F5, strzałki), przechodzenie pomiędzy oknami (ALT + nr_okna lub F6), porządkowanie okien (Window-Tile, Window-Cascade). Odnaleźć w systemie pomocy informacje dotyczące funkcji printf (najechać kursorem na printf i wybrać CTRL-F1).

3. Przekopiować pierwszy program do nowego okna. W nowym programie dodać opcje czyszczenia ekranu (clrscr()) oraz oczekiwania na wciśnięcie dowolnego klawisza przed zakończeniem programu (getch() lub getchar()). Wykonać program krokowo Run-Trace into (F7) oraz Run-Step over (F8).

4. Opracować program, który wyprowadza na ekran, jeden pod drugim, n napisów "Witaj i", gdzie i jest numerem, i = 1, 2, ... , n. Do wczytywania wartości n wykorzystać cin lub scanf. Do wyprowadzania wykorzystać cout lub printf. Prześledzić zawartość zmiennej (i) za pomocą Debug-Watches (CTRL-F7).

5. Wyprowadzić tekst ”Turbo” na 10 polach wierszami, tak aby w każdym wierszu liczba znaków wyprowadzanego łańcucha zwiększała się o 1 (wykorzystać funkcję printf w postaci printf(”%10.*s”, i, ”Turbo”). Zrealizować dwa warianty: a) wyrównywanie tekstu do prawej (tzn. na ekranie powinny być wyprowadzane ciągi sssssssssT, ssssssssTu, sssssssTur, itd.), b) wyrównywanie tekstu do lewej (tzn. Tsssssssss, Tussssssss, Tursssssss, itd.). Symbol s oznacza spację.

(2)

6. Wczytać za pomocą funkcji scanf liczbę typu:

a) char, b) unsigned char, c) int,

d) unsigned int, e) long, f) unsigned long,

g) float, h) double (long float), i) long double.

Wyprowadzić liczby na ekran za pomocą funkcji printf.

7. Opracować trzy funkcje przeciążone z wartościami domniemanymi obliczające sumę dwóch liczb typu double. Dane są następujące prototypy:

a) double sum(double x=0, double y=0); // suma przez return b) void sum(double* s, double x=0, double y=0); // suma przez parametr s c) void sum(double& s, double x, double y); // suma przez parametr s

8. Umieścić prototypy funkcji z zadania 7 w pliku nagłówkowym sum.h, a ich definicje w osobnych modułach mod1.cpp, mod2.cpp, mod3.cpp, wykorzystujących plik sum.h.

W programie głównym umieścić plik nagłówkowy oraz wywołania trzech funkcji oblicza- jących sumę liczb. Utworzyć projekt umożliwiający kompilację programu wielomoduło- wego. W modułach umieścić dyrektywy kompilacji warunkowej zapobiegające wielokro- tnemu dołączaniu pliku nagłówkowego do programu głównego.

9. Opracować funkcję, która inicjuje tablicę char tab[50] losowymi liczbami całkowitymi należącymi do przedziału [33, 127]. Wyprowadzić tablicę wierszami na ekran po 10 znaków, rozdzielonych spacjami.

10. Opracować:

a) funkcję inicjują tablicę int tab[N_wiersz][M_kol] losowymi danymi z przedziału [-100, 100), gdzie N_wiersz, M_kol są stałymi w programie;

b) funkcję wyprowadzającą tablicę wierszami na ekran;

c) funkcję obliczającą sumę elementów tablicy.

11. Opracować funkcje umożliwiające inicjację pól struktur z1, z2, z3 zdefiniowanych w sposób następujący:

struct tosoba {

char naz[19];

unsigned rok, mies, dzien;

long id;

// funkcje inicjujące obiekt typu tosoba void ustaw_naz(char nowa[])

{ inicjacja pola naz zawartością nowa; }

void ustaw_data(unsigned r, unsigned m, unsigned d) { inicjacja pól rok, mies, dzien wartościami r, m, d } void ustaw_id(long d) { id = d; } // funkcja inicjująca id

void pisz(tosoba); // prototyp funkcji wyprowadzającej strukturę typu tosoba } z1 = { "Nowak",1981,10,9,234 },

z2 = { "Kowal",1981,11,8,123 }, z3 = { "Lis",1981,12,7,434 };

// definicja funkcji wyprowadzającej strukturę typu tosoba void tosoba::pisz(tosoba x) { tu wstawić kod funkcji }

(3)

void main(void) { clrscr();

z1.pisz(z1); z2.pisz(z2); z3.pisz(z3);

z1.ustaw_naz(”Kowal”);

z1.ustaw_data(2002,3,15);

z1.ustaw_id(102);

z1.pisz(z1);

getch();

}

12. Opracować funkcje umożliwiające inicjację pól obiektów z1, z2, z3 zdefiniowanych w sposób następujący:

class tosoba {

char naz[19];

unsigned rok, mies, dzien;

long id;

public:

// funkcje inicjujące obiekt typu tosoba

void ustaw_naz(char nowa[]); // ustawianie naz void ustaw_data(unsigned r, unsigned m, unsigned d); // ustawianie daty void ustaw_id(long d); // ustawianie id

void pisz(tosoba); // wyprowadzanie obiektu typu tosoba } z1, z2, z3;

void main(void) { clrscr();

z1.ustaw_naz(”Kowal”);

z1.ustaw_data(2002,3,15);

z1.ustaw_id(102);

z1.pisz(z1);

getch();

}

Cytaty

Powiązane dokumenty

metrach na następujące miary: cal, stopę, jard, milę lądową, sążnie, mile morskie, angstremy, kable, łokcie, wiorsty, itp... Suma

• Napisad program wyznaczający średni, dobowy kurs waluty EURO na podstawie kursów notowanych na początku każdej godziny.. • Pod koniec doby analityk wprowadza

Za pomocą klas programista stara się opisać obiekty, ich właściwości, zbudować konstrukcje, interfejs, dzięki któremu będzie można wydawać polecenia realizowane potem

n Skojarzenie referencji do klasy bazowej z obiektem klasy potomnej jest dozwolone przy dziedziczeniu publicznym. n uwagi (konwersje wskaźników

n można go wykorzystać jeżeli mamy zwrócić wskaźnik bądź referencję do obiektu na rzecz którego wywoływana jest metoda.. n nie

n operator konwersji tworzy obiekt określonego typu lub klasy z obiektu na rzecz którego

n Dla obiektu, którego klasy nie można jednoznacznie określić na etapie kompilacji, odwołania do metody, bądź metod zadeklarowanych jako wirtualne będą się odbywały

Na końcu tej funkcji umieszczamy wiersze: system(&#34;pause&#34;); - polecenie to zatrzymuje wykonanie programu do momentu naciśnięcia jakiegoś klawisza (pozwala to zobaczyć