Ćwiczenie 1.1 Napisz w języku C++ program, ktory

Transkrypt

Ćwiczenie 1.1 Napisz w języku C++ program, ktory
1
/* Ćwiczenie 1.1 Napisz w języku C++ program, ktory wyświetli na ekranie napis "Dzien dobry"................................................... 2
/* Ćwiczenie 2.1 WE/WY Napisz program, który wczyta całkowity promień koła i wyświetli wartość jego pola............................ 3
/* Ćwiczenie 2.2 WE/WY Napisz program, ktorego dzialanie bedzie polegalo na obliczeniu sumy trzech liczb: a=1.23457;
b=37,5 oraz c=0.6785479. Sumę tych liczb należy wyświetlić na ekranie z dokładnością do trzech miejsc po przecinku oraz
ponownie w notacji naukowej. W dalszej części należy wczytać liczbę całkowitą i wyświetlić ją na 10 pozycjach. ......................... 4
/* Ćwiczenie 2.4 Rzucamy dwa razy kostką. Program wyświetla wyrzucone liczby oczek. Wyświetla również wylosowaną liczbę
rzeczywistą z przedziału <0,1> ............................................................................................................................................................ 5
/* Ćwiczenie 3.1 WYRAŻENIA Program pokazuje zakres zwartości zmiennych typow: char, int, float. ........................................ 6
/* Ćwiczenie 3.2 WYRAŻENIA Program wczytuje liczbę całkowitą x i oblicza wartości: y=x+1; x=x-1; w=y*x; y=y*w............. 7
/* Ćwiczenie 4.1 IF Program wczytuje dwie liczby, jeśli pierwsza jest wieksza, to zamienia je miejscami i wyświetla rosnaco. Jeśli
nie zamienia liczb to wyświetla odpowiedni komunikat...................................................................................................................... 8
/* Ćwiczenie 4.2 IF złożona Program wczytuje dwie liczby x, y. Jeśli x należy do przedziału <0, 10> to program liczy wartość
wyrażenia (#) wyn=(x+y)/((x-5)(y-2)), poza tym przedziałem zwiększa zmienne x i y o 3 i liczy wartość (##) wyn=(x-y)/(x+5).
Program wyświetla wprowadzone dane i wynik lub odpowiedni komunikat. ..................................................................................... 9
*/ .......................................................................................................................................................................................................... 9
/* Ćwiczenie 4.3 SWITCH Program wczytuje dwie liczby i znak działania między nimi - wyświetla zapis i wynik działania. .... 10
/* Ćwiczenie 5.1 FOR Program wyswietla w jednym wierszu N=12 gwiazdek............................................................................... 11
/* Ćwiczenie 5.2 FOR zagnieżdżone Program wczytuje liczbę naturalną N i wyświetla kwadrat złożony z N gwiazdek. ............. 12
/* Ćwiczenie 5.3 WHILE Program obliczający sumę liczb wczytanych z klawiatury, dopóki obliczona suma jest mniejsza od 100.
Program wyświetla końcową sumę i ilość wczytanych liczb............................................................................................................. 13
/* Ćwiczenie 5.4 DO ... WHILE Program obliczający sumę liczb wczytanych z klawiatury, dopóki wprowadzona liczba jest różna
od zera. Program wyświetla końcową sumę i ilość wczytanych liczb. .............................................................................................. 14
/* Ćwiczenie 6.1 FUNKCJA bez parametrów Program wczytuje liczbę x. Przy pomocy funkcji wyświetla x gwiazdek. Przy
pomocy funkcji kwadrat liczony jest kwadrat liczby x. ..................................................................................................................... 15
/* Ćwiczenie 6.2 FUNKCJA z parametrami Program oblicza przy pomocy funkcji pole koła. Obliczenia prowadzone są dla kola
o promieniu wczytanym z klawiatury. ............................................................................................................................................... 16
/* Ćwiczenie 6.2 FUNKCJA z parametrami Program oblicza przy pomocy funkcji pole koła. Obliczenia prowadzone są dla kola
o promieniu wczytanym z klawiatury. ............................................................................................................................................... 17
/* Ćwiczenie 6.3 zmienne lokalne Program pokazuje obszar działania zmiennych globalnych i lokalnych. .................................. 18
/* Ćwiczenie 6.4 referencja Przekazywanie argumentów funkcji przez referencję. ........................................................................ 19
/* Ćwiczenie 7.1 REKURENCJA Program wyświetla wartość 12! oraz N! - gdzie N wczytane jest z klawiatury. Silnia liczona
jest w funkcji rekurencyjnie. .............................................................................................................................................................. 20
/* Ćwiczenie 7.2 REKURENCJA ciągi Funkcja liczy rekurencyjnie wyrazy ciagu Fibonacciego................................................. 21
/* Ćwiczenie 8.1 Program zapisuje powitanie do pliku tekstowego i zamyka go. Następnie otwiera odczytuje tekst i wyświetla na
ekranie................................................................................................................................................................................................ 22
/* Ćwiczenie 9.1 Program wypełnia losowymi liczbami tablicę totolotka i ją wyświetla. Program nie sprawdza, czy liczby są
jednakowe. ......................................................................................................................................................................................... 23
/* Ćwiczenie 12.1 OBIEKT Program zlicza ilość znaków (np. "x") z klawiatury. Program wykorzystuje zdefiniowany obiekt
moj_licznik......................................................................................................................................................................................... 24
2
/* Ćwiczenie 1.1 Napisz w języku C++ program, ktory wyświetli na ekranie napis "Dzien dobry".
*/
// proceduralnie: C, C++
#include <stdio.h>
// dołączenie pliku definicji funkcji Wej/Wyj
int main(void)
{
}
printf("Dzien \n");
printf("dobry");
getchar();
return 0;
/*
// obiektowo: C++
#include <iostream.h>
// int - typ całkowity INTEGER
// main - funkcja główna programu
// void - typ danej pustej
// wysyła dane do standardowego strumienia wyjściowego
// "\n" - przejście do nowego wiersza
// wyświetla znaki i czeka na wciśnięcie klawisza ENTER
// zwrot wartości 0 (sukcesu) do systemu
// zakończenie funkcji main
// dołączenie pliku definicji strumieni obiektowych
main()
{
cout << "Dzien" << endl;
// wysyła dane do standardowego strumienia wyjściowego
cout << "dobry";
// endl - manipulator przejścia do nowej linii
return 0;
}
*/
/* ZADANIA - WYKONAJ NA DWA SPOSOBY:
a) Zmień program tak, aby kończył sie po naciśnięciu
klawisza ENTER: getchar();
b) Zmień program tak, aby program kończył się wciśnięciem
dowolnego klawisza:
- funkcja getch() w bibliotece <conio.h>
- funkcja system("pause") w bibliotece <stdlib.h>.
c) Wyświetl "Dzien dobry" w jednym wierszu.
d) Wyświetl własne imię, a poniżej własne nazwisko.
e) Napisz nowy program, który wyświetli twoją wizytówkę
(adres w ramce z gwiazdek).
f) Wyświetl swoje imię po jednej literze w każdym wierszu.
*/
3
/* Ćwiczenie 2.1 WE/WY Napisz program, który wczyta całkowity promień koła i wyświetli wartość jego pola.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
float liczba_pi = 3.14;
// deklaracja stałej
int r;
// deklaracja zmiennej r - długość promienia
float pole;
// pole - zmienna na wartość pola koła
cout << "Podaj promień koła: ";
// pisz na ekranie tekst
cin >> r;
// wczytaj z klawiatury liczbę do zmiennej r
cin.ignore();
// ignorowanie znaku końca linii (kod ENTER),
// który został w buforze klawiatury - musi być przed getchar()
pole = liczba_pi * r * r;
// obliczenie pola
cout << "Pole koła wynosi: " << pole;
// pisz na ekranie tekst
// i wartość zmiennej pole
getchar();
// zatrzymanie, aż do wciśnięcia klawisza ENTER
return 0;
// zwrócenie wartości 0 do systemu operacyjnego
}
// koniec funkcji main
/*
a) Zmień w programie typowo polskie litery na odpowiednie łacińskie.
b) Zmień w programie długość promienia na wymierną.
c) Zmień program tak, aby wyswietlał pole koła i długość okręgu.
d) Zmień program tak, aby wczytywał długość boku kwadratu
i wyświetlał obwód i pole kwadratu.
e) Zmień program tak, aby wczytywał długości boków prostokąta
i wyświetlał obwód i pole prostokąta.
*/
4
/* Ćwiczenie 2.2 WE/WY Napisz program, ktorego dzialanie bedzie polegalo na obliczeniu sumy trzech liczb: a=1.23457; b=37,5
oraz c=0.6785479. Sumę tych liczb należy wyświetlić na ekranie z dokładnością do trzech miejsc po przecinku oraz ponownie w
notacji naukowej. W dalszej części należy wczytać liczbę całkowitą i wyświetlić ją na 10 pozycjach.
*/
#include <stdio.h>
using namespace std;
main()
{
float a=1.23457, b=37.5, c=0.6785479;
// deklaracja zmiennych a, b, c
// z wartościami początkowymi
float w;
// deklaracja zmiennej w
int x;
// deklaracja zmiennej x
w = a + b + c;
// obliczenie wartosci zmiennej w
printf("%sW= ");
// pisz na ekranie napis "W= "
printf("%8.3f",w);
// pisz na ekranie zmienną w
// z trzema miejscami po przecinku
printf("\n%e", w);
// wyświetl w w notacji naukowej
printf("\nPodaj liczbe calkowita x=");
// pisz na ekranie napis
scanf("%d", &x);
// wczytanie liczby z klawiatury
getchar();
// oczekiwanie na ENTER
printf("\nPodana liczba: %10d",x);
// wyświetl zmienną x
getchar();
// czekaj na wcisniecie ENTER
return 0;
// zwrócenie wartości 0 do systemu operacyjnego
}
/*
a) Zmień program tak, aby deklarowane były inne wartości
w zmiennych a, b, c. Do wyświetlanej sumy dodaj opis 'Suma: ',
a wynik wyświetl z dwoma miejscami po przecinku.
b) Wyświetl tekst 'Suma: ' sformatowany do dwunastu miejsc.
c) Zmień program tak, aby zmienne a, b, c były wczytane z klawiatury.
d) W instrukcjach WE/WY dołóż opisy.
e) Dla wartości a, b, c wyświetl wartość wyrazenia w=(a+b*c)/3.5.
f) Dla wartości a, b, c wyświetl wartość średniej arytmetycznej.
*/
5
/* Ćwiczenie 2.4 Rzucamy dwa razy kostką. Program wyświetla wyrzucone liczby oczek. Wyświetla również wylosowaną liczbę
rzeczywistą z przedziału <0,1>
*/
#include <iostream>
#include <cstdio>
#include <stdlib.h>
using namespace std;
main()
{
unsigned int los;
float los2;
srand(time(NULL));
los=1+rand()%6;
}
// biblioteka zawierająca funkcję RAND
// inicjalizacja funkcji rand()
// losowanie z <0, a)=> rand()%a
cout << "\nWyrzucona liczba oczek to: " << los;
cout << "\nDrugi rzut: " << 1+rand()%6;
los2= (double)rand()/(RAND_MAX);
cout <<endl <<"Wylosowana liczba rzeczywista= " <<los2;
getchar();
return 0;
/*
a) Wylosuj i wyświetl dwie liczby z przedziału <0; 100>.
b) Wylosuj i wyświetl liczbę z przedziału <11; 20).
c) Dodaj symulację rzutu monetą: orzel, reszka.
d) Wylosuj i wyświetl liczbę trzycyfrową.
e) Wyświetl dwie wylosowane liczby z przedziału <0; 1)
z trzema miejscami po przecinku.
*/
6
/* Ćwiczenie 3.1 WYRAŻENIA Program pokazuje zakres zwartości zmiennych typow: char, int, float.
*/
#include <iostream>
#include <cstdio>
#include <conio.h>
using namespace std;
char xchar = 127;
int xint = 32767;
float xfloat = 3.4e+38;
//
//
//
//
deklaracja przestrzeni nazw
zmienne globalne
deklaracja zmiennych różnych typów
przypisanie do zmiennych ich max wartości
main()
{
printf("Najwieksza wartosc CHAR: %d", xchar);
// wyświetli wartość 127
printf("\nNajwieksza wartosc INT: %d", xint);
// wyświetli 32767
printf("\nNajwieksza wartosc FLOAT: %e", xfloat); // wyświetli 3.4e+38
xchar=xchar+1;
xint=xint+1;
xfloat=xfloat + (0.1e+38);
cout <<endl <<endl << "NOWE WARTOSCI";
printf("\nWartosc CHAR po dodaniu 1= %d", xchar); // wyświetli: -128
printf("\nWartosc INT po dodaniu 1= %d", xint);
// wyświetli: 32768
printf("\nWartosc FLOAT po dodaniu 0.1e+38= %e", xfloat);
// wyświetli 1.#INF00e+000
getchar();
return 0;
// zwrócenie wartości 0 do systemu operacyjnego
}
/*
a) Zmień zapis:
x=x+1 na x++ i x=x+a na x+=a.
b) Znajdź największe wartości dla typu long.
c) Znajdź największe wartości dla typów: unsigned char i long double.
*/
7
/* Ćwiczenie 3.2 WYRAŻENIA Program wczytuje liczbę całkowitą x i oblicza wartości: y=x+1; x=x-1; w=y*x; y=y*w.
*/
#include <iostream>
#include <cstdio>
#include <stdio.h>
using namespace std;
main()
{
int x;
// deklaracja zmiennych
int w, y;
printf("Podaj x= "); // wyświetlenie tekstu na ekranie
scanf("%d", &x);
// wczytanie liczby całkowitej
y=x+1;
// obliczenia
w=y*--x;
y*=w;
printf("\nWartosc x= %d", x); // wyświetlenie wyników
printf("\nWartosc w= %d", w);
printf("\nWartosc y= %d", y);
getchar();
getchar();
return 0;
// zwrócenie wartości 0 do systemu operacyjnego
}
/*
Oblicz w programie wartości wyrażeń dla x=1, y=2, z=3, wynik=4.
Napisz matematyczną postać tych wyrażeń:
a) wynik *= -++x*x--; wynik += -y--%++z;
b) wynik *= -(++x)*(x--)+-(y--)%(++z);
c) wynik *= (-(++x))*(x--)+(-(y--))%(++z);
Najkrócej obliczi wyświetl wartości wyrażeń:
x=x-2; y=y+1; z=z+2; W=((x-2)+(y+1))/((z+2)*(z+3));
*/
8
/* Ćwiczenie 4.1 IF Program wczytuje dwie liczby, jeśli pierwsza jest wieksza, to zamienia je miejscami i wyświetla rosnaco. Jeśli
nie zamienia liczb to wyświetla odpowiedni komunikat.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
float a, b, pom;
cout << "Podaj pierwsza liczbe: ";
// wyświetl komunikat
cin >> a;
// wczytaj liczbę do zmiennej a
cout << "\nPodaj druga liczbe: ";
// wyświetl komunikat
cin >> b;
// wczytaj liczbę do zmiennej b
if (a>b)
// instrukcja warunkowa (czy a > b)
{
// jeśli a > b, to wykonaj: zamien zmienne a i b
pom=a;
a=b;
b=pom;
}
else
// jeśli warunek nie jest spełniony to wyświetl tekst
cout << "\nLiczby nie zostaly zamienione";
cout << "\nMniejsza liczba = " <<a;
// mniejsza liczba z a
cout << "\nWiększa liczba = " <<b;
// większa liczba z b
cin.ignore();
// ignorowanie kodu ENTER
// który został w buforze klawiatury - musi być przed getchar()
getchar();
return 0;
// zwrócenie wartości 0 do systemu operacyjnego
}
/*
a) Zmien program tak, aby po wczytaniu liczb nie zamieniać ich miejscami,
ale wyświetlić która jest mniejsza, a która większa.
b) wyświetl każdą liczbę tylko wtedy, gdy jest wieksza
od 20 i w rosnącej kolejności.
c) wyświetl każdą liczbę tylko wtedy, gdy należy do przedziału
<10; 50> i w rosnącej kolejności.
*/
9
/* Ćwiczenie 4.2 IF złożona Program wczytuje dwie liczby x, y. Jeśli x należy do przedziału <0, 10> to program liczy wartość
wyrażenia (#) wyn=(x+y)/((x-5)(y-2)), poza tym przedziałem zwiększa zmienne x i y o 3 i liczy wartość (##) wyn=(x-y)/(x+5).
Program wyświetla wprowadzone dane i wynik lub odpowiedni komunikat.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
float x, y, wyn;
char zn=' ';
cout << "Podaj pierwsza liczbe x= ";
cin >> x;
cout << "\nPodaj druga liczbe y= ";
cin >> y;
if ((x>=0)&&(x<=10))
if ((x!=5)&&(y!=2))
wyn=(x+y)/((x-5)*(y-2));
else
zn='1';
else
{
x=x+3;
y=y+3;
if (x!=-5)
wyn=(x-y)/(x+5);
else
zn='2';
}
}
//
//
//
//
//
//
wyświetl komunikat
wczytaj liczbę do zmiennej a
wyświetl komunikat
wczytaj liczbę do zmiennej b
spr czy x należy do <0, 10>
spr czy wyrażenie ma wartość
// gdy wyrażenie nie ma wartości
// gdy x nie należy do <0, 10>
// spr czy drugie wyr ma wartość
// gdy wyrażenie nie ma wartości
if (zn==' ')
// czy zmienna wyn ma wartość
cout << "\nx= " <<x <<" y= " <<y << "
wynik= " <<wyn;
else
cout << "\n Nie mozna wyliczyc wyniku - bledne dane - z= " <<zn;
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
/*
a) Zmień program tak, aby wyrażenie (#) było liczone wtedy, gdy x i y należą
równocześnie do przedziału <0, 10>, a (##) w pozostałym przypadku.
b) Zapisz drugi program tak, aby wyrażenie (#) było liczone wtedy,
gdy x lub y należy do <0, 10>, a (##) w pozostałym przypadku.
c) wyświetl każdą liczbę tylko wtedy, gdy wynik należy do przedziału <1; 5>,
poza tym przedziałem wyświetl komunikat - za duza wartosc.
*/
10
/* Ćwiczenie 4.3 SWITCH Program wczytuje dwie liczby i znak działania między nimi - wyświetla zapis i wynik działania.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
char znak=' ';
int a, b, wyn;
cout << "Podaj pierwsza liczbe: ";
// wyświetl komunikat
cin >> a;
// wczytaj liczbę do zmiennej a
cout << "\nPodaj druga liczbe: ";
// wyświetl komunikat
cin >> b;
// wczytaj liczbę do zmiennej b
cout << "\n ... podaj znak dzialania:";
cout << "\n + dodawanie";
cout << "\n - odejmowanie";
cin >> znak;
switch(znak)
{
// klamra rozpoczynająca switch
case '+': wyn= a+b; break;
// pierwsza wartość
case '-': wyn= a-b; break;
// druga wartość
default: cout << "\n ZLE podales inny znak niz + lub -";
break;
}
// klamra zamykająca switch
cout <<endl <<a <<" " <<znak <<" " <<b <<" = " <<wyn;
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
}
/*
a) Uzupełnij program o obsługę działań: mnożenie, dzielenie.
b) Wynik działań wyświetl tylko wtedy, gdy jest dodatni.
c) Wynik działań wyświetl tylko wtedy, gdy należy do przedziału <10; 20>.
d) Napisz program, który wyświetli nazwy 5 miesięcy po podaniu ich numeru.
*/
11
/* Ćwiczenie 5.1 FOR Program wyswietla w jednym wierszu N=12 gwiazdek.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
int i, N=12;
}
//
//
for (i=1; i<=N; i++)
{
//
cout <<"*";
//
}
//
getchar();
return 0;
deklaracja zmiennych calkowitych i podstawienie N=12
i - licznik kroku pętli, N - ilość gwiazdek
początek pętli FOR
wyświetlenie jednej gwiazdki
koniec pętli FOR
/*
a) Zmień program tak, aby wczytywał z klawiatury do zmiennej N ilość gwiazdek.
b) Dodaj do programu wyświetlenie N razy Twojego imienia linijka pod linijką.
c) Nowy program ma wyswietlać kwadraty liczb od 1 do N (1, 4, ... N*N).
d) Program ma wyswietlać wyrazy ciągu ai = 2i - 1 (co to za liczby).
e) Program sumuje kwadraty 20 kolejnych liczb nieparzystych i wyświetla S.
f) Program wyświetla wyrazy ciagu bn = 7*n - 2*n*n dla n = 4, 5, 6, ... 18.
g) Program liczy sume kolejnych liczb naturalnych od 100 do 200.
h) Program liczy sume wyrazow ciagu bn z (f).
*/
12
/* Ćwiczenie 5.2 FOR zagnieżdżone Program wczytuje liczbę naturalną N i wyświetla kwadrat złożony z N gwiazdek.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
int i, j, N;
}
// deklaracja zmiennych calkowitych
// i - nr gwiazdki wyświetlanej w linii
// j - nr linii w której wyświetlane gwiazdki
cout << "Podaj bok kwadratu: ";
cin >> N;
// wczytaj z klawiatury liczbę do zmiennej N
for (j=1; j<=N; j++)
// w którym wierszu wyświetlane gwiazdki
{
// początek pętli zewnętrznej
for (i=1; i<=N; i++)
// pętla wyświetla N gwiazdek w rzędzie
{
// początek pętli wewnętrznej
cout <<"*";
// wyświetlenie jednej gwiazdki w cyklu
}
// koniec pętli wewnętrznej
cout <<endl;
// przejscie do nowej linii na ekranie
}
// koniec pętli zewnętrznej
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
/*
a) Wyświetl N * N gwiazdek w jednym wierszu oddzielonych spacjami.
b) W pętli rozpocznij liczenie od i=0 i j=0.
c) Program ma wyswietlic prostokat N * M gwiazdek. (N, M wczytane).
d) Sprawdz, czy M i N są obie wieksze od 0.
e) Pod spodem wyświetl trójkąt (polowa kwadratu) z gwiazdek w N wierszach:
*
**
***
.........
******* (N gwiazdek).
f) Wyświetl trójkąt odwrotny:
******* (N gwiazdek)
.........
***
**
*
*/
13
/* Ćwiczenie 5.3 WHILE Program obliczający sumę liczb wczytanych z klawiatury, dopóki obliczona suma jest mniejsza od 100.
Program wyświetla końcową sumę i ilość wczytanych liczb.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
float suma, x;
// x - zmienna na liczbę z klawiatury
int i;
// i - nr wczytywanej liczby
suma=0;
// zerowanie zmiennej na sume liczb
i=0;
// zerowanie ilości wczytanych liczb
while (suma<100)
{
// początek pętli WHILE
i++;
// licznik numeru wczytywanej liczby
cout << "\nPodaj liczbe nr " <<i <<": ";
cin >> x;
// wczytaj z klawiatury liczbę do x
suma+=x;
// dodanie liczby do zmiennej suma
}
// koniec pętli WHILE
cout << "\nWczytanych wyrazow: " << i; // wyświetlenie wyników
cout << "
suma = " <<suma;
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
}
/*
a) Oblicz i wyświetl sumę sześciu wczytanych liczb.
b) Obliczenia należy przerwać, gdy suma > 500 lub ilość liczb > 9.
c) Obliczenia należy przerwać, gdy suma > 200 i ilość liczb >55.
d) Oblicz i wyświetl sumę liczb, dopóki wprowadzona liczba > 0.
e) Obliczenia zakończ jeśli liczba jest z przedziału <-10, 10>.
*/
14
/* Ćwiczenie 5.4 DO ... WHILE Program obliczający sumę liczb wczytanych z klawiatury, dopóki wprowadzona liczba jest różna od
zera. Program wyświetla końcową sumę i ilość wczytanych liczb.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
float suma, x;
// x - zmienna na liczbę z klawiatury
int i;
// i - nr wczytywanej liczby
suma=0;
// zerowanie zmiennej na sume liczb
i=0;
// zerowanie ilości wczytanych liczb
do
{
// początek pętli DO
i++;
// licznik numeru wczytywanej liczby
cout << "\nPodaj liczbe nr " <<i <<": ";
// pisz na ekranie tekst
cin >> x;
// wczytaj z klawiatury liczbę do x
suma+=x;
// dodanie liczby do zmiennej suma
}
// koniec cyklu pętli DO
while (x);
// badanie warunku (x!=0)
i--;
cout << "\nWczytanych wyrazow: " << i;
cout << "
suma = " <<suma;
cin.ignore();
// ignorowanie znaku końca linii (kod ENTER)
getchar();
return 0;
}
/*
a) Zakończ obliczenia w programie gdy wprowadzona liczba jest niedodatnia.
b) Obliczenia zakończ jeśli liczba jest z przedziału <-10, 10>.
c) Oblicz i wyświetl sumę sześciu wczytanych liczb.
d) Oblicz i wyświetl sumę liczb. Obliczenia prowadzić dopóki suma < 100.
e) Obliczenia należy przerwać, gdy suma > 500 lub ilość liczb jest
większa od 9 lub wczytana liczba jest mniejsza od -999.
f) Napisz program który liczy: s=0; for(i=0;i<20;i++){s+=(i*i-25)/(7*i+25);
cout <<s; przy pomocy pętli DO i przy pomocy pętli WHILE.
*/
15
/* Ćwiczenie 6.1 FUNKCJA bez parametrów Program wczytuje liczbę x. Przy pomocy funkcji wyświetla x gwiazdek. Przy
pomocy funkcji kwadrat liczony jest kwadrat liczby x.
*/
#include <iostream>
#include <cstdio>
#include <conio.h>
using namespace std;
long x;
void gwiazdki(void)
{
for (int i=0; i<x; i++)
{
cout <<"*";
}
cout <<endl;
}
long kwadrat()
{
return x*x;
}
// biblioteka z getche()
// zmienna globalna
// definicja funkcji bez parametrów i bez wartości
// na koniec przejdź do nowej linii
// koniec treści funkcji
// definicja funkcji bez parametrów
main()
{
char taknie;
// zmienna na potwierdzenie
do
{
cout << "\nPodaj liczbe calkowita x ";
// pisz na ekranie tekst
cin >> x;
// wczytaj liczbę do x
cout <<"wyswietlenie " << x << " gwiazdek:\n";
gwiazdki();
// wywołanie funkcji
cout << "\nKwadrat liczby " <<x;
cout << "
wynosi " << kwadrat() <<endl; // wyświetlenie wyników
cout << "\nCzy jeszcze raz? ";
cin.ignore();
// ignorowanie kodu ENTER
taknie=getche();
}
while (taknie=='t' || taknie=='T');
return 0;
}
/*
a) Zmień typ zmiennej x na liczbę wymierną.
b) Dodaj funkcję, aby program również liczył sześcian liczby.
b) Program ma liczyć sumę sześcianów dwóch liczb w funkcji.
c) W programie zmień petlę DO na WHILE.
d) W programie wyświetl kwadraty i sześciany n liczb podanych z klawiatury.
*/
16
/* Ćwiczenie 6.2 FUNKCJA z parametrami Program oblicza przy pomocy funkcji pole koła. Obliczenia prowadzone są dla kola o
promieniu wczytanym z klawiatury.
*/
#include <iostream>
#include <cstdio>
using namespace std;
float polekola(float promien)
// definicja funkcji z parametrem promien
{
float p=3.1415*promien*promien;
cout <<endl <<"Pole kola o promieniu r= " <<promien;
cout <<" wynosi " <<p <<endl;
return p;
}
main()
{
float r;
// zmienna na promień koła
polekola(10);
// wywołanie funkcji dla promienia = 10
do
{
cout << "\nPodaj promien kola ";
cin >> r;
// wczytaj liczbę do zmiennej r
if (r<0)
{
cout << "\nNiepoprawny promien kola! - Podaj jeszcze raz";
}
}
while (r<=0);
// gdy r jest ujemne - nie jest promieniem
polekola(r);
// wywołanie funkcji dla promienia r
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
}
/*
a) W programie wstaw liczenie długości obwodu koła.
b) Program ma liczyc dodatkowo pole i objętość kuli.
c) W programie wyswietl wyliczone wyniki dla promieni naturalnych
od 1 do N wczytanego z klawiatury.
d) Napisz program który w funkcji oblicza objętość prostopadłościanu.
Wymiary wczytywane z klawiatury (sprawdź, czy dodatnie).
*/
17
/* Ćwiczenie 6.2 FUNKCJA z parametrami Program oblicza przy pomocy funkcji pole koła. Obliczenia prowadzone są dla kola o
promieniu wczytanym z klawiatury.
*/
#include <iostream>
#include <cstdio>
using namespace std;
float polekola(float promien)
// definicja funkcji z parametrem promien
{
float p=3.1415*promien*promien;
cout <<endl <<"Pole kola o promieniu r= " <<promien;
cout <<" wynosi " <<p <<endl;
return p;
}
main()
{
float r;
// zmienna na promień koła
polekola(10);
// wywołanie funkcji dla promienia = 10
do
{
cout << "\nPodaj promien kola ";
cin >> r;
// wczytaj liczbę do zmiennej r
if (r<0)
{
cout << "\nNiepoprawny promien kola! - Podaj jeszcze raz";
}
}
while (r<=0);
// gdy r jest ujemne - nie jest promieniem
polekola(r);
// wywołanie funkcji dla promienia r
cin.ignore();
// ignorowanie kodu ENTER
getchar();
return 0;
}
/*
a) W programie wstaw liczenie długości obwodu koła.
b) Program ma liczyc dodatkowo pole i objętość kuli.
c) W programie wyswietl wyliczone wyniki dla promieni naturalnych
od 1 do N wczytanego z klawiatury.
d) Napisz program który w funkcji oblicza objętość prostopadłościanu.
Wymiary wczytywane z klawiatury (sprawdź, czy dodatnie).
*/
18
/* Ćwiczenie 6.3 zmienne lokalne Program pokazuje obszar działania zmiennych globalnych i lokalnych.
*/
#include <iostream>
#include <cstdio>
using namespace std;
int liczba=999;
void fun1()
{
int l1=101;
liczba=100;
cout <<"\nWartosci
cout <<"\n liczba=
cout <<endl;
}
void fun2(int liczba,
{
cout <<"\nWartosci
cout <<"\n liczba=
cout <<endl;
l1=201;
liczba=200;
cout <<"\nWartosci
cout <<"\n liczba=
cout <<endl;
}
// zmienna globalna
// definicja funkcji fun1
zmiennych wewnatrz funkcji fun1:";
" << liczba <<" l1= " <<l1;
int l1)
// definicja funkcji fun2
zmiennych na poczatku funkcji fun2:";
" << liczba <<" l1= " <<l1;
zmiennych wewnatrz funkcji fun2:";
" << liczba <<" l1= " <<l1;
main()
{
int liczba1=1;
int l1;
liczba=0;
cout <<"\nWartosci zmiennych przed wywołaniem funkcji";
cout <<"\n liczba= " << liczba <<" l1= " <<l1;
// 0, losowa
cout <<endl;
fun1();
// 100, 101
fun2(liczba, liczba1);
// 100, 1 // 200, 201
cout <<"\nWartosci zmiennych po wywołaniu funkcji fun2:";
cout <<"\n liczba= " << liczba <<" l1= " <<l1 <<" liczba1= ";
cout <<liczba1 <<endl;
// 100, losowa, 1
cout <<endl;
getchar();
return 0;
}
19
/* Ćwiczenie 6.4 referencja Przekazywanie argumentów funkcji przez referencję.
*/
#include <iostream>
#include <cstdio>
using namespace std;
int liczba=999;
// zmienna globalna
void fun3(int &liczba, int &l1)
// definicja funkcji fun3
{
cout <<"\nWartosci zmiennych na poczatku funkcji fun3:";
cout <<"\n liczba= " << liczba <<" l1= " <<l1;
cout <<endl;
l1=201;
liczba=200;
cout <<"\nWartosci zmiennych wewnatrz funkcji fun3:";
cout <<"\n liczba= " << liczba <<" l1= " <<l1;
cout <<endl;
}
// float prost(float &a, float &b, float &obwod) { ... }
main()
{
int l1;
liczba=0;
cout <<"\nWartosci zmiennych przed wywołaniem funkcji";
cout <<"\n liczba= " << liczba <<" l1= " <<l1;
cout <<endl;
fun3(liczba, l1);
}
cout <<"\nWartosci zmiennych po wywołaniu funkcji fun3:";
cout <<"\n liczba= " << liczba <<" l1= " <<l1;
cout <<endl;
getchar();
return 0;
/*
a) Napisz program bez zmiennych globalnych, w którym funkcja
prost liczy i przekazuje do programu zarówno pole jak i obwód
prostokąta dla podanych boków. Wyświetl boki, pole i obwód prostokąta.
b) W funkcji należy również zwiększyć boki prostokąta o 1.
*/
// 0, losowa
// 0, losowa
// 200, 201
// 200, 201
20
/* Ćwiczenie 7.1 REKURENCJA Program wyświetla wartość 12! oraz N! - gdzie N wczytane jest z klawiatury. Silnia liczona jest w
funkcji rekurencyjnie.
*/
#include <iostream>
#include <cstdio>
using namespace std;
unsigned long silnia(int n)
// deklaracja funkcji
{
// wzor: 0!=1; n!=(n-1)!*n dla n>0
if (n>0)
return silnia(n-1)*n; // zwrot wartości funkcji silnia zgodnie z wzorem:
// silnia z parametrem n-1 pomnożonej przez liczbę n
else
return 1;
// gdy n=0, to silnia=1
}
main()
{
int i, N;
unsigned long licz;
licz=silnia(12);
cout << "12! = " << licz <<endl;
cout << "
13! = " << silnia(13) <<endl;
cout <<"UWAGA! 12!*4= " <<silnia(12)*4 <<endl;
cout <<endl <<"Wyniki 12!*13 i 12!*4 sa bardzo podobne - dlaczego?";
do
{
cout << "\nPodaj liczbe do liczenia silni: ";
cin >> N;
}
while (N<0);
cout <<endl <<"
" <<N <<"! = " <<silnia(N) <<endl;
if (N==14)
{
cout << "zauwaz, ze 14! < 13!" <<"\nDLACZEGO?" <<endl;
}
cin.ignore();
getchar();
return 0;
}
/*
a) Policz 14!. Dlaczego wyniki 13! i 14! są złe?
b) Zmień sprawdzenie warunku jak w definicji silnii.
c) Wyświetl silnie liczb od 1 do KON (KON - wczytane z klawiatury).
d) Dopisz funkcję rekurencyjną, która dodaje kolejne liczby naturalne
od 1 do KON KON - parametr) i zastosuj tę funkcję w programie.
e) Policz i wyświetl ile razy wywołana jest funkcja silnia.
*/
21
/* Ćwiczenie 7.2 REKURENCJA ciągi Funkcja liczy rekurencyjnie wyrazy ciagu Fibonacciego.
*/
long fib(long n)
{
}
// deklaracja funkcji fib
// wzor: F0=1; F1=1 Fn=Fn-1 + Fn-2
long xfib;
// zmienna
switch(n)
{
case 0: xfib=1; break;
//
case 1: xfib=1; break;
//
default: xfib=fib(n-1)+fib(n-2); break;
//
}
return xfib;
pomocnicza
podstawienie F0=1
podstawienie F1=1
// podstawienie sumy wartości funkcji
z parametrem n-1 i z parametrem n-2
/*
a) Dopisz program, który wyświetli fib(10).
b) Zmień w funkcji instrukcję SWITCH na instrukcję warunkową IF.
c) Zmień funkcję aby liczyła wyrazy ciągu podanego wzorem: F0=1; F1=2; Fn=Fn-1 + Fn-2 +1
d) Dopisz funkcję, która liczy wyrazy ciagu podanego wzorem: G1=G2=1; Gn=3Gn-1 + 3Gn-2 -4n.
Wyświetl G10 tego ciągu.
*/
22
/* Ćwiczenie 8.1 Program zapisuje powitanie do pliku tekstowego i zamyka go. Następnie otwiera odczytuje tekst i wyświetla na
ekranie.
*/
#include <iostream>
#include <cstdio>
using namespace std;
main()
{
FILE *wsk_pliku;
char bufor[80];
if((wsk_pliku=fopen("witaj.txt","w")) != NULL)
{
fprintf(wsk_pliku,"Witajcie\n");
fprintf(wsk_pliku,"Drugi wiersz w pliku\n");
fclose(wsk_pliku);
}
else
printf("\nWystapil blad otwarcia pliku");
// "r" - read, "a" - append;
if((wsk_pliku=fopen("witaj.txt","r")) != NULL)
// "r" - read, "a" - append;
{
if (fgets(bufor, sizeof(bufor), wsk_pliku) != NULL)
{
printf("%s",bufor);
fgets(bufor, sizeof(bufor), wsk_pliku);
printf("%s",bufor);
fclose(wsk_pliku);
}
else
printf("\nBlad odczytu pliku\n");
}
else
printf("\nWystapil blad otwarcia pliku");
}
getchar();
return 0;
/*
a) Popraw ścieżkę dostępu do pliku.
b) W pliku tekstowym zapisz własne imię i nazwisko.
c) W pliku tekstowym zapisz własny adres (w 3 liniach).
d) Zmień program, aby wyświetlił zawartość 1 linii utworzonego
pliku tekstowego NAZWISKO.TXT.
e) W pliku witaj.txt dopisz kolejne liczby od 111 do 222.
*/
23
/* Ćwiczenie 9.1 Program wypełnia losowymi liczbami tablicę totolotka i ją wyświetla. Program nie sprawdza, czy liczby są
jednakowe.
*/
#include <iostream>
#include <cstdio>
#include <stdlib.h>
using namespace std;
int toto[6];
int n;
void wypelnij()
{
for (int i=0; i<6; i++)
{
toto[i]=1+rand()%49;
}
}
void wyswietl()
{
cout <<"Wylosowane liczby w tablicy toto: \n";
for (int i=0; i<6; i++)
{
cout<<toto[i] <<" ";
}
}
int main()
{
srand(time(NULL));
wypelnij();
wyswietl();
}
// inicjalizacja funkcji losowej rand
getchar();
return 0;
/*
a) Zmień program tak, aby wyświetlal liczby multilotka (20 liczb od 1 do 80).
b) Zmień funkcję wypelniania tak, aby po wylosowaniu liczby program
sprawdzał czy w tablicy toto (od toto[0] do toto[i-1])
jest już taka wartość - jeśli jest to ma losowac dalej,
jeśli nie ma takiej wartości, to wstawia liczbę do tablicy.
c) Wyświetl zawartość tablicy od końca do początku.
d) Zamiast liczb losuj małe litery (kody ASCII od 'a' do 'z').
*/
24
/* Ćwiczenie 12.1 OBIEKT Program zlicza ilość znaków (np. "x") z klawiatury. Program wykorzystuje zdefiniowany obiekt
moj_licznik.
*/
#include <conio.h>
#include <iostream.h>
#include <ctype.h>
using namespace std;
class klasa_licz
{
public:
char zlicz_znak;
int licz;
void inicjuj(char znak);
void dodaj(void);
} moj_licznik;
void klasa_licz::inicjuj(char znak)
{
zlicz_znak=znak;
licz=0;
}
void klasa_licz::dodaj(void)
{
licz++;
}
// dodanie 1 do zmiennej licz
main()
{
char znak = 'x';
moj_licznik.inicjuj(znak);
cout <<"Napisz kilka znaków " <<znak <<" (znak q oznacza koniec):\n";
do
{
if ((znak=getche()) == moj_licznik.zlicz_znak)
moj_licznik.dodaj();
}
while (toupper(znak)!= 'Q');
cout <<"\nIlosc wystapien znaku " <<moj_licznik.zlicz_znak \
<<" : " <<moj_licznik.licz;
}
getche();
return 0;
/*
a) Zmień program tak, aby liczył ilość liczb (np. 15) wczytanych z klawiatury.
b) Zmień program tak, aby liczył ilości dwóch liczb wczytanych z klawiatury.
c) Zmień program tak, aby liczył wszystkie wciśnięte małe litery 'a' ... 'z'
// zadeklarowana tablica moj_licznik[26]
// for (i=0; i<26; i++) moj_licznik[i].inicjuj(i+'a')
// do {moj_licznik[(znak=getche())-'a'].dodaj()
*/

Podobne dokumenty