Zadanie 1
Podaj specyfikację zadania i skonstruuj algorytm w postaci listy kroków, schematu blokowego oraz programów w językach C++ i Pascal. Dana jest liczba całkowita n. Jeżeli n jest większe lub równe 1, należy obliczyć sumę ciągu n kolejnych liczb naturalnych 1,2,...,n, w przeciwnym wypadku wyświetlić komunikat "n<1".
Specyfikacja
Wejście: Dowolna liczba całkowita n
Wyjście: Jeśli n≥1 to s - suma n kolejnych liczb naturalnych, w przeciwnym wypadku komunikat: "n<1"Lista kroków
Krok 0. Wczytaj wartość danej n
Krok 1. Jeśli n≥1, to przypisz s = n * ( n + 1 ) / 2, wypisz s i zakończ algorytm.
Krok 2. (W tym przypadku n<1). Wypisz komunikat "n<1". Zakończ algorytm.
Schemat blokowy
Program w języku C++
#include <iostream> using namespace std; main() { int n, s; cout<<"podaj n: "; cin>>n; if (n>=1) {s=n*(n+1)/2; cout<<"s = "<<endl;} else cout<<"n < 1"<<endl; return 0; }
Program w języku Pascal
program suma var n, s: integer; begin write('podaj n: '); readln(n); if n>=1 then begin s:=n*(n+1) div 2; writeln('s = ',s) end else writeln('n < 1') end.
Zadanie 2
Podaj specyfikacje zadania i skonstruuj algorytm w postaci schematu blokowego sprawdzający czy wprowadzona z klawiatury liczba całkowita jest parzysta.
Specyfikacja
Wejście: Dowolna liczba całkowita n
Wyjście: Jeśli liczba n jest parzysta to wyświetlić komunikat: "Liczba n jest parzysta". W przeciwnym wypadku wyświetlić komunikat: "Liczba n jest nieparzysta".Schemat blokowy
Zadanie 3
Podaj specyfikację zadania i skonstruuj algorytm w postaci listy kroków i programu sprawdzający, która z wprowadzonych z klawiatury trzech różnych liczb całkowitych a, b i c jest największa.
Specyfikacja
Wejście: Dowolne trzy różne liczby całkowite a, b, c; a≠b≠c
Wyjście: Odpowiedzni komunikat mówiący, która z wprowadzonych liczb: a, b lub c jest największa.Lista kroków
Krok 0. Wczytaj wartości danych a, b, c.
Krok 1. Jeśli a>b, to przejdź do kroku 2, w przeciwnym wypadku przejdź do kroku 3.
Krok 2. Jeśli a>c, to wypisz komunikat "Najwiekszą liczbą jest liczba a", w przeciwnym wypadku wypisz komunikat: "Największą liczbą jest liczba c" i zakończ algorytm.
Krok 3. Jeśli b>c, to wypisz komunikat: "Największą liczbą jest liczba b", w przeciwnym wypadku wypisz komunikat: "Największą liczbą jest liczba c" i zakończ algorytm.Program w języku C++
#include <iostream> using namespace std; main() { int a, b, c; cout<<"podaj a, b, c: "; cin>>a>>b>>c; if (a>b) if (a>c) cout<<"Najwiekszą liczbą jest liczba a"; else cout<<"Największą liczbą jest liczba c"<<endl; else if (b>c) cout<<"Największą liczbą jest liczba b"; else cout<<"Największą liczbą jest liczba c"<<endl; return 0; }
Zadanie 4
Podaj specyfikację zadania i skonstruuj algorytm w postaci schematu blokowego i programu sprawdzający, która z wprowadzonych z klawiatury czterech różnych liczb całkowitych a, b, c i d jest najmniejsza.
Specyfikacja
Wejście: Dowolne cztery różne liczby całkowite a, b, c, d; a≠b≠c≠d
Wyjście: Odpowiedni komunikat mówiący, która z wprowadzonych liczb: a, b, c lub d jest najmniejsza.Schemat blokowy
Program w języku C++
#include <iostream> using namespace std; main() { int a, b, c, d; cout<<"podaj a, b, c, d: "; cin>>a>>b>>c>>d; if (a<b) if (a<c) if (a<d) cout<<"Najmniejszą liczbą jest liczba a"; else cout<<"Najmniejszą liczbą jest liczba d"<<endl; else if (c<d) cout<<"Najmniejszą liczbą jest liczba c"; else cout<<"Najmniejszą liczbą jest liczba d"<<endl; else if (b<c) if (b<d) cout<<"Najmniejszą liczbą jest liczba b"; else cout<<"Najmniejszą liczbą jest liczba d"<<endl; else if (c<d) cout<<"Najmniejszą liczbą jest liczba c"; else cout<<"Najmniejszą liczbą jest liczba d"<<endl; return 0; }
Zadanie 5
Na rysunku przedstawiono schemat blokowy pewnego algorytmu. Podaj wartości zmiennych x i y po wykonaniu działań, jeśli na początku wczytamy x=5, y=7. Napisz program realizujący ten algorytm
Odpowiedź
Po wczytaniu wartości x=5 i y=7 i wykonaniu działań, na wyjściu otrzymamy następujące wartości zmiennych:
- x=6
- y=2
Program w języku C++
#include <iostream> using namespace std; main() { double x, y, z; cout<<"podaj x, y: "; cin>>x>>y; z=5; x=x+2; if (x<y) {x=x*z; y=y-1; cout<<"x = "<<x<<endl; cout<<"y = "<<y<<endl;} else if (x==y) {y=y-z; x=x-1; cout<<"x = "<<x<<endl; cout<<"y = "<<y<<endl;} else {y=y+z; x=x+1; cout<<"x = "<<x<<endl; cout<<"y = "<<y<<endl;} return 0; }
Zadanie 6
Przeanalizuj podany poniżej kod programu:
double x=0, y=1;
if (x) x++;
else if (x+y) y*=x+3;
else if (y) x-=y*3;
x+=y;
cout<<"x = "<<x<<"\ty = "<<y<<endl;
Podaj wartości zmiennych x i y po wykonaniu podanego algorytmu. Utwórz schemat blokowy tego algorytmu.Odpowiedź
Po wczytaniu wartości x=0 i y=1 i wykonaniu działań, na wyjściu otrzymamy następujące wartości zmiennych:
- x=3
- y=3
Zadanie 7
Pole trójkąta można wyznaczyć na podstawie długości jego boków a, b i c, korzystając z wzoru Herona:
Podaj specyfikację zadania i napisz program obliczający pole trójkąta za pomocą wzoru Herona. Nie zapomnij sprawdzić, czy liczba podpierwiastkowa jest nieujemna.
Specyfikacja
Wejście: Dowolne trzy dodatnie liczby rzeczywiste a, b, c
Wyjście: Jeśli trójkąt istnieje to P-pole trójkąta, w przeciwnym wypadku komunikat: "Z podanych odcinków nie można zbudować trójkąta."Program w języku C++
#include <iostream> #include <cmath> using namespace std; int main() { double a, b, c, p, P; cout<<"Podaj a, b, c: "; cin>>a>>b>>c; p=(a+b+c)/2; if(sqrt(p*(p-a)*(p-b)*(p-c))<=0) cout<<"Z podanych odcinków nie można zbudować trójkąta."<<endl; else {P=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"P = "<<P<<endl;} return 0; }