Programowanie C++ / Html & Css / Arduino - Interwizyt

Matura

Matura podstawowa 2018

W pliku liczby.txt znajduje się 1000 liczb z zakresu od 1 do 30 000, każda w osobnym wierszu.

Napisz program(y), który(e) da(dzą) odpowiedzi do poniższych zadań. Każdą odpowiedź zapisz w pliku wyniki5.txt i poprzedź ją numerem oznaczającym zadanie. - Pobierz pliki!

Zadanie 5.1

Podaj największą liczbę parzystą zapisaną w pliku liczby.txt.

#include "iostream"
#include "fstream"
using namespace std;
 
int main()
{
    fstream liczby("liczby.txt");
    ofstream odpowiedz("wyniki.txt");
 
    int a;
    int max = 2;
 
    for (int i = 0; i < 1000; i++)
    {
        liczby >> a;
 
        // Warunek narzucony w poleceniu
        if((a % 2 == 0)&&(a > max))
            max = a;
    }
    cout << "Najwieksza parzysta: " << max << endl;
    odpowiedz << max;
    
    return 0;
}

Zadanie 5.2

Liczba palindromiczna to taka liczba, która czytana od lewej i od prawej strony ma taką samą wartość.

Przykładowo: liczby 23432, 5665 oraz 7 są palindromiczne, a 3434 i 1234 nie są. Podaj wszystkie liczby palindromiczne z pliku liczby.txt, w kolejności, w jakiej występują w tym pliku.

#include "iostream"
#include "fstream"
using namespace std;
 
int main()
{
    fstream liczby("liczby.txt");
    ofstream odpowiedz("wynik.txt");
 
    char tab[7];
    int rozm;
 
    for (int i = 0; i < 1000; i++)
    {
        liczby >> tab;
 
        // Sprawdza długość wyrazu
        for (rozm = 0; tab[rozm] != NULL; rozm++);
        rozm--;
       
        // Sprawdza czy palindrom
        for (int k = 0; ; k++, rozm--)
        {
            if (tab[k] != tab[rozm]) break;
            if ((k == rozm) || (rozm == k + 1))
            {
                odpowiedz << tab << endl;
                cout << tab << endl;
                break;
            }
        }
    }
 
    return 0;
}

Zadanie 5.3

Dla każdej liczby z pliku liczby.txt oblicz sumę jej cyfr. Podaj wszystkie liczby, których suma cyfr jest większa od 30, w kolejności, w jakiej występują w tym pliku. Ponadto podaj sumę wszystkich cyfr użytych do zapisu wszystkich liczb z pliku liczby.txt.

#include "iostream"
#include "fstream"
using namespace std;
 
int main()
{
    fstream liczby("liczby.txt");
    ofstream odpowiedz("wynik.txt");
 
    int a;
    int suma_calkowita = 0;
 
    for (int i = 0; i < 1000; i++)
    {
        liczby >> a;
 
        int b = a;
        int suma = 0;
 
        for (; a != 0;)
        {
            suma = suma + a % 10;
            a = a / 10;
        }
        if (suma > 30)
        {
            cout << b << endl;
            odpowiedz << b << endl;
        }
        suma_calkowita += suma;
    }
    odpowiedz << "Suma calkowita: " << suma_calkowita << endl;
    cout << "Suma calkowita: " << suma_calkowita << endl;
 
    return 0;
}

Aktualności