2010-05-03 21:44:17

[C++] Kolejne zadanka z liceum

Kolejne zadania z C++. Może komuś się przydadzą :)

 

Lista 3 - Instrukcje pętli for, while, do...while.

 

Zadanie 2.

Napisz program, który będzie wykonywał sumowanie liczb naturalnych 1+2+3+4+.. dopóki suma nie przekroczy podanej na początku przez użytkownika liczby naturalnej. Na końcu program musi podać ile należało dodać liczb, aby suma ich była mniejsza (lub równa) od podanej liczby. Umieść w kodzie ważniejsze komentarze dotyczące przebiegu działania programu. W celu stworzenia tego programu posłuż się funkcją while.

 

				
#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

int main(void)
{
    int x, i = 1, sum = 0;
    
    cout << "Podaj liczbe do ktorej ma trwac sumowanie: ";
    cin >> x;
    
    while (1 == 1) //zapętlamy while'a
    {
        sum += i; //sumujemy kolejne liczby naturalne
        if(sum > x) //jeśli suma jest większa niż nasz limit, 
        {           //odejmujemy jedną liczbę, zmniejszamy indeks i kończymy pętle
            sum -= i;
            i--;
            break;
        }
        else if(sum == x) //jeśli suma jest równa limitowi kończymy pętle
            break;
        i++; // powiększamy indeks
    } 
    
    cout << "Suma liczb to: " << sum << endl;
    cout << "Zostalo dodanych: " << i+1 << " liczb" << endl;
    
    getch();
}
				

 

Zadanie 4.

Wykorzystując znane ci instrukcje iteracji, napisz program wypisujący wszystkie liczby podzielne przez 4 w zakresie od 0 do podanej liczby naturalnej n. Jeżeli nie ma liczb podzielnych przez 4 w podanym zakresie, to ma wyświetlić odpowiedni komunikat. Zadbaj również o to, aby po wykonaniu program, za zgodą użytkownika, mógł powtórzyć działanie bez ponownego uruchamiania programu. Do kodu programu dołącz komentarze.

 

				
#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

int main(void)
{
    int n, i, x;
    bool q = 1;
    
    while(q == 1) //jeśli wartość boole'a jest prawdziwa to powtarzaj program
    {
        cout << "Podaj liczbe n: ";
        cin >> n;
        
        x = 0; //indeks spisujący ilość wystąpień liczb podzielnych przez 4
        
        for(i = 0; i <= n; i++) //for przechodzący przez liczby z wyznaczonego zakresu
        {
            if(i%4 == 0 && i != 0) //jeśli reszta z dzielenia przez 4 wynosi zero i jeśli liczba nie jest zerem
            {
                cout << i << endl;
                x++; //zwiększanie indeksu
            }
        }
        
        if(x == 0) //jeśli nie było wystąpień
            cout << "W podanym przedziale nie bylo liczb podzielnych przez 4" << endl;
            
        cout << "Czy chcesz powtorzyc program? (1/0) "; //1 prawda, 0 fałsz
        cin >> q;
    }
    
    getch();
}
				

Liczba wyswietlen: 626
Tagi: cpp, porady, liceum