zadania od 5 do 10 trzema metodami


Spis treści
Zadanie 5. Napisz algorytm (w pseudokodzie) wyznaczający sumę N kolejnych liczb całkowitych poczynając od liczby -5...............2
Zadanie 6. Napisz algorytm (w pseudokodzie) wyznaczający sumę liczb parzystych w zbiorze N kolejnych liczb naturalnych............3
Zadanie 7. Napisz algorytm (w pseudokodzie) wyznaczający średnią arytmetyczną z N pierwszych wyrazów ciągu Fibonacciego......5
Zadanie 8. Napisz algorytm (w pseudokodzie) wyznaczający średnią arytmetyczną z nieparzystych wyrazów wśród N pierwszych
wyrazów ciągu Fibonacciego......................................................................................................................................................................6
Zadanie 9. Napisz algorytm (w pseudokodzie) wypełniający tablicę T o rozmiarze N sześcianami kolejnych liczb naturalnych
dodatnich.....................................................................................................................................................................................................8
Zadanie 10. Napisz algorytm (w pseudokodzie) wypełniający tablicę T o rozmiarze N kolejnymi liczbami naturalnymi zaczynając od
wartości 5..................................................................................................................................................................................................10
Słowo końcowe.........................................................................................................................................................................................11
Wykonane przez Rafał Orzełek Strona 1/11
Zadanie 5. Napisz algorytm (w pseudokodzie) wyznaczający sumę N kolejnych liczb
całkowitych poczynając od liczby -5.
Sposób z pętlą 'for' wg mnie chyba najłatwiejszy sposób.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program oblicza sume n kolejnych zaczynajac od -5\n";
cout <<"Podaj ile liczb mam dodac: ";
cin >> n;
system("cls");
int j=-5, suma=0;
/*potrzebujemy trzech dodatkowych zmiennych:
zmiennej gdzie bedziemy trzemac sume liczb
zmiennej, która będzie nadawac kolejne liczby calkowite
i licznika, który sprawdzi czy już mamy konczyc liczenie*/
for (int i=1; i<=n; ++i)
{
suma+=j;
++j;
}
cout <<"\nsuma "<suma< system("PAUSE");
return EXIT_SUCCESS;
}
Sposób z pętlą while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program oblicza sume n kolejnych zaczynajac od -5\n";
cout <<"Podaj ile liczb mam dodac: ";
cin >> n;
system("cls");
//teraz wykonamy to samo co wczesniej, ale z petla
//while i troszke inaczej - uzyjemy jednej zmiennej mniej
int suma=0,i=1;
while (i<=n)
{
suma+=i-6;
/*od i odejmujemy 6, dlatego, zeby uzyskac liczbe -5
od ktorej to liczby mamy zaczac liczyc sume.
przy pirwszym przejsciu przez petle i wynosi 1, a jak
zmniejszymy i o 6 to mamy -5.
przy drugim przejsciu i wynosi 2, a jak odejmiemy 6
to i wynosi -4, czyli mamy kolejne liczby calkowite
zaczynajc od -5*/
++i;
}
cout <<"\nsuma "<suma< system("PAUSE");
return EXIT_SUCCESS;
}
Wykonane przez Rafał Orzełek Strona 2/11
Sposób z pętlą do .. while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program oblicza sume n kolejnych zaczynajac od -5\n";
cout <<"Podaj ile liczb mam dodac: ";
cin >> n;
system("cls");
//teraz wykonamy to samo co wczesniej, ale z petla
//while i troszke inaczej - uzyjemy jednej zmiennej mniej
int suma=0,i=0;
do
{
++i;
suma+=i-6;
/*od i odejmujemy 6, dlatego, zeby uzyskac liczbe -5
od ktorej to liczby mamy zaczac liczyc sume.
przy pirwszym przejsciu przez petle i wynosi 1, a jak
zmniejszymy i o 6 to mamy -5.
przy drugim przejsciu i wynosi 2, a jak odejmiemy 6
to i wynosi -4, czyli mamy kolejne liczby calkowite
zaczynajc od -5*/
}
while (i cout <<"\nsuma "<suma< system("PAUSE");
return EXIT_SUCCESS;
}
Zadanie 6. Napisz algorytm (w pseudokodzie) wyznaczający sumę liczb parzystych w
zbiorze N kolejnych liczb naturalnych.
Rozwiązane za pomocą pętli for.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy sume liczb parzystych w zbiorze n-kolejnych liczb
calkowitych\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*tutaj nalezaloby sie zastanowic od jakiej liczby mamy zaczac. Przeciez
parzystymi
sa liczby rowniez ujemne np. -2. przyjmijmy ze zaczynamy od 0 (zera)*/
int suma=0;
for (int i=0; i<=n; ++i)
{
if (!(i%2)) suma+=i;
}
cout <<"\nsuma "<wynosi: "<<
suma< system("PAUSE");
return EXIT_SUCCESS;
}
Wykonane przez Rafał Orzełek Strona 3/11
Rozwiązanie dla pętli while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy sume liczb parzystych w zbiorze n-kolejnych liczb
calkowitych\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*tutaj nalezaloby sie zastanowic od jakiej liczby mamy zaczac. Przeciez
parzystymi
sa liczby rowniez ujemne np. -2. przyjmijmy ze zaczynamy od 0 (zera)*/
int suma=0,i=1; //i zerujemy liczba 1, bo bedziemy liczyc do n, a nie do n-1
while (i<=n)
{
if (!(i%2)) suma+=i;
/*kilka slow wyjasnienia do warunku. W c++ za falsz przyjmuje sie wartosc
0 (zero), a za prawde kazda inna wartosc rozna od 0 (zera).
Chodzi nam mianowicie o liczby parzyste. Jaka jest reszta liczby parzystej
podzielonej
przez 2? Zero - czyli falsz. Ale jak zanegujemy ! (wykrzyknik) falsz to
otrzymujemy prawde. ;) */
++i;
}
cout <<"\nsuma "<"> wynosi: "< system("PAUSE");
return EXIT_SUCCESS;
}
Rozwiązane za pomocą pętli do .. while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy sume liczb parzystych w zbiorze n-kolejnych liczb
calkowitych\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*tutaj nalezaloby sie zastanowic od jakiej liczby mamy zaczac. Przeciez
parzystymi
sa liczby rowniez ujemne np. -2. przyjmijmy ze zaczynamy od 0 (zera)*/
int suma=0,i=1; //i zerujemy liczba 1, bo bedziemy liczyc do n, a nie do n-1
do
{
if (!(i%2)) suma+=i;
/*kilka slow wyjasnienia do warunku. W c++ za falsz przyjmuje sie wartosc
0 (zero), a za prawde kazda inna wartosc rozna od 0 (zera).
Chodzi nam mianowicie o liczby parzyste. Jaka jest reszta liczby parzystej
podzielonej
przez 2? Zero - czyli falsz. Ale jak zanegujemy ! (wykrzyknik) falsz to
otrzymujemy prawde. ;) */
++i;
}
while (i<=n);
cout <<"\nsuma "<"> wynosi: "< system("PAUSE");
return EXIT_SUCCESS;
}
Wykonane przez Rafał Orzełek Strona 4/11
Zadanie 7. Napisz algorytm (w pseudokodzie) wyznaczający średnią arytmetyczną z N
pierwszych wyrazów ciągu Fibonacciego.
Rozwiązane za pomocą pętli for.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna n kolejnych wyrazow ciagu
Fibonacciego\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*zeby wyznaczyc kolejny wyraz ciagu fibonacciego musimy znac (zapamietac)
poprzednie dwa wyrazy. Dla nieznajacych pierwsze wyrazy tego ciagu to:
1 1 2 3 5 8 13 21 ...*/
int a=0, b=1, c=a+b;
float suma=0;
for (int i=1; i<=n; ++i)
{
suma+=c;
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
}
cout <<"\nsrednia arytmetyczna "<wynosi: "< system("PAUSE");
return EXIT_SUCCESS;
}
Rozwiązane za pomocą pętli while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna n kolejnych wyrazow ciagu
Fibonacciego\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*zeby wyznaczyc kolejny wyraz ciagu fibonacciego musimy znac (zapamietac)
poprzednie dwa wyrazy. Dla przypomnienia pierwsze wyrazy tego ciagu to:
1 1 2 3 5 8 13 21 ...*/
int a=0, b=1, c=a+b, i=1;
float suma=0;
while (i<=n)
{
suma+=c;
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
++i;
}
cout <<"\nsrednia arytmetyczna "<wynosi: "< system("PAUSE");
return EXIT_SUCCESS;
}
Wykonane przez Rafał Orzełek Strona 5/11
Rozwiązane za pomocą pętli do .. while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna n kolejnych wyrazow ciagu
Fibonacciego\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*zeby wyznaczyc kolejny wyraz ciagu fibonacciego musimy znac (zapamietac)
poprzednie dwa wyrazy. Dla przypomnienia pierwsze wyrazy tego ciagu to:
1 1 2 3 5 8 13 21 ...*/
int a=0, b=1, c=a+b, i=1;
float suma=0;
do
{
suma+=c;
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
++i;
}
while (i<=n);
cout <<"\nsrednia arytmetyczna "<wynosi: "< system("PAUSE");
return EXIT_SUCCESS;
}
Zadanie 8. Napisz algorytm (w pseudokodzie) wyznaczający średnią arytmetyczną z
nieparzystych wyrazów wśród N pierwszych wyrazów ciągu Fibonacciego.
Pętla for
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna z nieparzystych wyrazow ciagu
Fibonacciego wsrod n-pierwszych wyrazow\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*wedlug mnie nieparzyste wyrazy ciagu to te zaznaczone gwiazdka
1* 1 2* 3 5* 8 13* 21 ...
do tego zadania potrzebujemy kolejnej zmiennej ktora bedzie "pamietac"
ile wyrazow ciagu dodalismy*/
int a=0, b=1, c=a+b, j=0;
float suma=0;
for (int i=1; i<=n; ++i)
{
if (i%2) //w c++ wartosc 0 (zero) jest falszem, a kazda inna wartosc
{ //jest prawda, wiec i%2 da 0 (zero) - falsz lub 1 prawda
suma+=c;
++j;
}
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
Wykonane przez Rafał Orzełek Strona 6/11
}
cout <<"\nsrednia arytmetyczna nieparzystych wyrazow ciagu Fibonacciego wsrod
"<suma/j< system("PAUSE");
return EXIT_SUCCESS;
}
Pętla while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna z nieparzystych wyrazow ciagu
Fibonacciego wsrod n-pierwszych wyrazow\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*wedlug mnie nieparzyste wyrazy ciagu to te zaznaczone gwiazdka
1* 1 2* 3 5* 8 13* 21 ...
do tego zadania potrzebujemy kolejnej zmiennej ktora bedzie "pamietac"
ile wyrazow ciagu dodalismy*/
int a=0, b=1, c=a+b, j=0, i=1;
float suma=0;
while (i<=n)
{
if (i%2) //w c++ wartosc 0 (zero) jest falszem, a kazda inna wartosc
{ //jest prawda, wiec i%2 da 0 (zero) - falsz lub 1 prawda
suma+=c;
++j;
}
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
++i;
}
cout <<"\nsrednia arytmetyczna nieparzystych wyrazow ciagu Fibonacciego wsrod "
< system("PAUSE");
return EXIT_SUCCESS;
}
Pętla do .. while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
cout <<"Program wyznaczajacy srednia arytmatyczna z nieparzystych wyrazow ciagu
Fibonacciego wsrod n-pierwszych wyrazow\n";
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
/*wedlug mnie nieparzyste wyrazy ciagu to te zaznaczone gwiazdka
1* 1 2* 3 5* 8 13* 21 ...
do tego zadania potrzebujemy kolejnej zmiennej ktora bedzie "pamietac"
ile wyrazow ciagu dodalismy*/
int a=0, b=1, c=a+b, j=0, i=1;
float suma=0;
do
{
if (i%2) //w c++ wartosc 0 (zero) jest falszem, a kazda inna wartosc
{ //jest prawda, wiec i%2 da 0 (zero) - falsz lub 1 prawda
Wykonane przez Rafał Orzełek Strona 7/11
suma+=c;
++j;
}
c=a+b; //te trzy linijki kodu
a=b; //generuja kolejny
b=c; //wyraz ciagu Fibonacciego
++i;
}
while(i<=n);
cout <<"\nsrednia arytmetyczna nieparzystych wyrazow ciagu Fibonacciego wsrod "
< system("PAUSE");
return EXIT_SUCCESS;
}
Zadanie 9. Napisz algorytm (w pseudokodzie) wypełniający tablicę T o rozmiarze N
sześcianami kolejnych liczb naturalnych dodatnich.
Pętla for.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice o rozmiarze n szescianami kolejnych licz
calkowitych dodatnich\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
bedzie 100.
Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
for (int i=0; i{
t[i]=(i+1)*(i+1)*(i+1);
}
//wyswietlamy tablice
cout << "Wyswietlam tablice\n";
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Pętla while
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice o rozmiarze n szescianami kolejnych liczb
calkowitych dodatnich\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
Wykonane przez Rafał Orzełek Strona 8/11
bedzie 100.Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
int i=0;
while (i{
//w tresci zadania jest 'kolejnych liczb calkowitych dodatnich'
//wiec 0 (zero) nie nalezy do calkowitych dodatnich.
//napisalem i+1, bo przy pierwszym przejsciu przez petle i wynosi 0 (zero)
//a jak dodamu 1 to mamy 1. Do generowania kolejnych liczb calkowitych
//mozemy uzyc licznika kolejnej komorki tablicy.
t[i]=(i+1)*(i+1)*(i+1);
++i;
}
//wyswietlamy tablice
//wyswietlanie tablicy bede przeprowadzal za pomoca petli for
cout << "Wyswietlam tablice\n";
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Pętla do .. while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice o rozmiarze n szescianami kolejnych liczb
calkowitych dodatnich\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
bedzie 100.Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
int i=0;
do
{
//w tresci zadania jest 'kolejnych liczb calkowitych dodatnich'
//wiec 0 (zero) nie nalezy do calkowitych dodatnich.
//napisalem i+1, bo przy pierwszym przejsciu przez petle i wynosi 0 (zero)
//a jak dodamu 1 to mamy 1. Do generowania kolejnych liczb calkowitych
//mozemy uzyc licznika kolejnej komorki tablicy.
t[i]=(i+1)*(i+1)*(i+1);
++i;
}
while (i //wyswietlamy tablice
//wyswietlanie tablicy bede przeprowadzal za pomoca petli for
cout << "Wyswietlam tablice\n";
Wykonane przez Rafał Orzełek Strona 9/11
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Zadanie 10. Napisz algorytm (w pseudokodzie) wypełniający tablicę T o rozmiarze N
kolejnymi liczbami naturalnymi zaczynając od wartości 5.
Pętla for
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice liczbami calkowitymi poczawszy od 5\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
bedzie 100.
Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
for (int i=0; i<=n; ++i)
{
t[i]=i+5; //jezeli zapiszemy w ten sposob to bedzie dobrze wykonane zadanie
} //jezeli i=0 to t[0]=5. zgadza sie? ;)
//wyswietlamy tablice
cout << "Wyswietlam tablice\n";
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Pętla while.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice liczbami calkowitymi poczawszy od 5\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
bedzie 100.
Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
int i=0;
while (i{
Wykonane przez Rafał Orzełek Strona 10/11
t[i]=i+5; //jezeli zapiszemy w ten sposob to bedzie dobrze wykonane zadanie
//jezeli i=0 to t[0]=5. zgadza sie? ;)
++i;
}
//wyswietlamy tablice
cout << "Wyswietlam tablice\n";
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Pętla do .. while
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int t[100];
int n;
cout <<"Program wypełnia tablice liczbami calkowitymi poczawszy od 5\n";
/*Powinnismy uzywac tablic dynamicznych, ale przyjmijmy ze max wielkosc tablicy
bedzie 100.
Nie bede pisal warunku zeby uzytkownik nie wpisal wartosci wiekszej. Jak
chcecie
to zrobcie to sami*/
cout <<"Podaj zakres n: ";
cin >> n;
system("cls");
//wypelniamy tablice
int i=0;
do
{
t[i]=i+5; //jezeli zapiszemy w ten sposob to bedzie dobrze wykonane zadanie
//jezeli i=0 to t[0]=5. zgadza sie? ;)
++i;
}
while (i //wyswietlamy tablice
cout << "Wyswietlam tablice\n";
for (int i=0; i{
cout << t[i] <<" ";
}
cout << endl << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Słowo końcowe.
Piotrek pisał do mnie, że wszystkie pętle zrobiłem za pomocą polecenia for. Pisał, że również pętle while, do ..
while również się znajdą na egzaminie. Z tego względu napisałem kilka zadanek wszystkimi trzema metodami
tzn. za pomocą polecenia for, while i do .. while.
Nie pisałem zadań do końca, bo resztę petli for można zamienić w podobny sposób.
Jeżeli ktoś będzie miał jakieś pytania do moich przykładów to proszę pisać na maila. Spróbuje pomóc
Pozdrawiam, Rafał Orzełek.
Wykonane przez Rafał Orzełek Strona 11/11


Wyszukiwarka

Podobne podstrony:
od 02 07 09 do 10 07 09
zadania od 09 do 12
zadania od 05 do 08
zadania od 13 do 16
zadania od 01 do 04
zadania od 17 do 21
zadania od 22 do 25
Przystawka do spawania aluminium metoda TIG cz3

więcej podobnych podstron