Ćwiczenia podstawowe, zestaw 5, część 1

Podobne dokumenty
1 Funkcje i ich wykorzystanie

Podstawy Programowania Podstawowa składnia języka C++

1 Definiowanie prostych klas

C++ wprowadzanie zmiennych

Wstęp do Informatyki

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Programowanie - wykład 4

Wstęp do programowania

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Instrukcje sterujące

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

INSTRUKCJE REPETYCYJNE PĘTLE

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

WHILE (wyrażenie) instrukcja;

Wstęp do informatyki- wykład 11 Funkcje

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

1 Podstawy c++ w pigułce.

Część 4 życie programu

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

PROGRAMOWANIE W C++ ZADANIA

Podstawy programowania w C++

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Wprowadzenie do programowania w języku C

Pytania sprawdzające wiedzę z programowania C++

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Wstęp do programowania

Wstęp do informatyki- wykład 7

1 Podstawy c++ w pigułce.

Wstęp do informatyki- wykład 9 Funkcje

I - Microsoft Visual Studio C++

1 Wielokrotne powtarzanie tych samych operacji

do instrukcja while (wyrażenie);

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

WHILE (wyrażenie) instrukcja;

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Kilka prostych programów

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

Struktury Struktura polami struct struct struct struct

3. Instrukcje warunkowe

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Podstawy programowania w języku C i C++

Wstęp do Programowania 2

4. Funkcje. Przykłady

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

tablica: dane_liczbowe

Czym jest całka? Całkowanie numeryczne

Programowanie komputerowe. Zajęcia 1

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Język C zajęcia nr 5

Wyjątki (exceptions)

Struktura pliku projektu Console Application

Projekty zaliczeniowe z obiektówki

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Języki programowania obiektowego Nieobiektowe elementy języka C++

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Języki programowania obiektowego Nieobiektowe elementy języka C++

Wstęp do informatyki- wykład 6

Podstawy programowania w języku C++

C-struktury wykład. Dorota Pylak

Operacje wejścia/wyjścia odsłona pierwsza

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Podstawy programowania

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Laboratorium_1: Temat: Wprowadzenie do języka C++ 1. Operatory. Arytmetyczne

Mechanizm dziedziczenia

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Języki programowania obiektowego

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009

Wstęp do programowania. Wykład 1

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

IX. Wskaźniki.(3 godz.)

C++ - [1-3] Debugowanie w Qt Creator

Programowanie strukturalne i obiektowe. Funkcje

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Język C++ zajęcia nr 1

3.1. Obliczanie obwodu koła.

Proste programy w C++ zadania

Język C, instrukcje sterujące (laboratorium)

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

INSTRUKCJE REPETYCYJNE PĘTLE

Wprowadzenie do programowania w języku C

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Język C++ wykład VIII

C-struktury wykład. Dorota Pylak

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 4

Podstawy programowania w języku C i C++

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Transkrypt:

Ćwiczenia podstawowe, zestaw 5, część 1 1 Napisz zestaw funkcji identyfikujących rodzaj znaku Należy napisać funkcje, pozwalające na identyfikowanie typu znaku przekazanego parametrem. Załóżmy, że tworzymy funkcję: int is_lower( char c ); Rezultatem funkcji ma być wartość 0, jeżeli znak c nie jest małą literą, lub wartość różną od zera (np. 1), gdy znak c jest małą literą. Wykorzystanie funkcji może być następujące: char znak; cout << "Wprowadz mala litere: "; cin >> znak; if( is_lower( znak ) ) cout << "Wprowadziales mala litere " << znak; else cout << "Nie wprowadziles malej litery!";... Pozostałe funkcje mogą być wykorzystane w analogiczny sposób. int is_upper( char c ); Rezultatem funkcji ma być wartość 0, jeżeli znak c nie jest dużą literą, lub wartość różną od zera (np. 1), gdy znak c jest dużą literą. int is_digit( char c ); Rezultatem funkcji ma być wartość 0, jeżeli znak c nie jest cyfrą dziesiętną, lub wartość różną od zera (np. 1), gdy znak c jest cyfrą dziesiętną. int is_oct_digit( char c ); Rezultatem funkcji ma być wartość 0, jeżeli znak c nie jest cyfrą ósemkową, lub wartość różną od zera (np. 1), gdy znak c jest cyfrą ósemkową. int is_hex_digit( char c ); Rezultatem funkcji ma być wartość 0, jeżeli znak c nie jest cyfrą szesnastkową, lub wartość różną od zera (np. 1), gdy znak c jest cyfrą szesnastkową.

2 Napisz zestaw funkcji zamiany wielkości liter Należy napisać funkcje, pozwalające na zamianę wielkości znaku, będącego literą, odpowiednio z dużej na małą, oraz z małej na dużą (zakładamy wykorzystanie kodu ASCII): char to_lower( char c ); char to_upper( char c ); Jeżeli funkcja to_lower otrzyma w parametrze c znak będący dużą literą, rezultatem funkcji ma być odpowiednia mała litera. Jeżeli znak c nie jest dużą literą, rezultatem funkcji ma być znak c. Analogicznie, jeżeli funkcja to_upper otrzyma w parametrze c znak będący małą literą, rezultatem funkcji ma być odpowiednia duża litera. Jeżeli znak c nie jest małą literą, rezultatem funkcji ma być znak c. Należy wykorzystać fakt, że przesunięcie pomiędzy literami dużymi a małymi w kodzie ASCII wynosi 32 (zobacz materiały wykładowe). Wykorzystanie funkcji to_lower może być następujące: char znak; cout << "Wprowadz mala litere; "; cin >> znak; if(! is_lower( znak ) ) cout << "Nie wprowadziles malej litery!"; else znak = to_upper( znak ); cout << "Duzy odpowiednik wprowadzonej litery to " << znak;... 3 Napisz zestaw funkcji wczytującej liczby z zadanego zakresu Należy napisać funkcje: int czytaj_liczbe_int_z_zakresu( int dol, int gora ); float czytaj_liczbe_float_z_zakresu( float dol, float gora ); Funkcje odczytują z klawiatury liczbę, przy czym pozwalają tylko na wprowadzenie liczby należącej do przedziału domkniętego określonego parametrami dol i gora.

Odpytywanie użytkownika trwa tak długo, aż zostanie wprowadzona liczba z odpowiedniego zakresu. Należy kontrolować wartości parametrów dol i gora. 4 Program obliczający pola figur płaskich Należy napisać program pozwalający na obliczanie pól i obwodów wybranych figur płaskich: kwadratu, prostokąta, koła, trójkąta. Scenariusz działania programu: 1. Program wyświetla informację o jego przeznaczeniu. 2. Program wyświetla menu główne pozwalające na wybór figury, dla której mają być wykonane obliczenia. 3. Po wybraniu figury, program wczytuje wymagane dane oraz wyświetla obliczone pole i obwód. 4. Program wraca do menu głównego, pozwalając na powtórzenie obliczeń dla dowolnej figury. 5. Program kończy swoje działanie po naciśnięciu przez użytkownika wybranego klawisza zakończenia. Wymagania Program ma być podzielony na funkcje realizujące spójne funkcjonalnie czynności. Ilustruje to przedstawiony dalej program przykładowy. Po realizacji pierwszej wersji programu, opartej na poniższym szablonie, należy koniecznie rozbudować program o elementy opisane w sekcji Rozszerzenia. Rozszerzenia Proszę rozszerzyć program o kontrolę poprawności prowadzanych parametrów na etapie ich wpisywania, tak, aby program nie pozwolił na wprowadzenie zerowej lub ujemnej liczby określającej np. bok, czy promień. Kontrolowane prowadzanie danych należy zawrzeć w odpowiednim podprogramie. Program przykładowy #include <iostream> #include <cstdlib> using namespace std; // Prototypy wykorzystywanych w programie funkcji void wyswietl_menu(); void obliczenia_dla_kwadratu(); void obliczenia_dla_prostokata(); void obliczenia_dla_kola(); void obliczenia_dla_trojkata(); float pole_kwadratu( float bok );

char klawisz; cout << endl << "Obliczam parametry figur plaskich"; do wyswietl_menu(); cin >> klawisz; switch( klawisz ) case '1' : obliczenia_dla_kwadratu(); case '2' : obliczenia_dla_prostokata(); case '3' : obliczenia_dla_kola(); case '4' : obliczenia_dla_trojkata(); while( klawisz!= 'z' && klawisz!= 'Z' ); return EXIT_SUCCESS; void wyswietl_menu( void ) cout << "\n1.kwadrat\n2.prostokat\n3.kolo\n4.trojkat\n5.trapez" << endl; cout << "\nwybierz numer figury lub Z by zakonczyc: "; void obliczenia_dla_kwadratu( void ) float bok; cout << endl << "Obliczenia dla kwadratu"; cout << endl << "Podaj dlugosc boku: "; cin >> bok; cout << "Pole : " << pole_kwadratu( bok ); cin.get(); void obliczenia_dla_prostokata( void )

void obliczenia_dla_kola( void ) void obliczenia_dla_trojkata( void ) void obliczenia_dla_trapezu( void ) float pole_kwadratu( float bok ) return bok * bok; float obwod_kwadratu( float bok ) return 4 * bok; float wczytaj_liczbe_f( char komunikat[] ) char bufor_tekstowy[ 80 ]; printf( komunikat ); fgets( bufor_tekstowy, 80, stdin ) ; return atof( bufor_tekstowy ); Proszę przeanalizować kod i sposób analogiczny zaprogramować brakujące funkcje. Wiem, że niektóre podprogramy wyglądają na naciągane. Są krótkie, gdyby je wyeliminować, program stałby się krótszy. Nie to jest jednak naszym celem. Celem jest systematyczne i konsekwentne stosowanie podprogramów do podziału programu na funkcjonalnie spójne fragmenty oraz do wyeliminowania powtarzających się fragmentów kodu.