Kurs podstawy programowania UMCS, zdjęcie laptopa.

Podstawy programowania – Laboratorium 3

Wejściówka – Funkcje matematyczne

Napisz program w języku C++, który obliczy pole sześciokąta foremnego. Program powinien wczytać długości boku od użytkownika, a następnie zapisać wynik do zmiennej typu całkowitego – result. Na koniec program powinien wyświetlić, czy wartość wprowadzona do zmiennej result jest podzielna bez reszty przez 6, 3 lub 2.

Rozwiązanie:
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int a;
    cin >> a;
    int result = 3 * a * a * sqrt(3) / 2.0f;
    if(!(result % 6)) cout << "Podzielne przez 6, 3 i 2." << endl;
    else if(!(result % 3)) cout << "Podzielna przez 3." << endl;
    else if(!(result % 2)) cout << "Podzielna przez 2." << endl;
    else cout << "Niepodzielne przez 6, 3 lub 2.";
    return 0;
}

Zadanie 1 – instrukcja wyboru switch

Napisz program w języku C++, który wczyta od użytkownika liczbę całkowitą. Następnie program powinien wyświetlić:
Monday, gdy użytkownik wprowadził 0,
Tuesday, gdy użytkownik wprowadził 1,
Wednesday, gdy użytkownik wprowadził 2,
Thursday, gdy użytkownik wprowadził 3,
Party dla każdej innej wartości wprowadzonej przez użytkownika.

Rozwiązanie
//Version 1.0
#include <iostream>
using namespace std;

int main() {
    int day;
    cin >> day;

    if(day == 0)
        cout << "Monday";
    else if(day == 1)
        cout << "Tuesday";
    else if(day == 2)
        cout << "Wednesday";
    else if(day == 3)
        cout << "Thursday";
    else
        cout << "Party";

    return 0;
}
//Version 2.0
#include <iostream>
using namespace std;

int main() {
    int day;
    cin >> day;

    switch (day) {
        case  0:
            cout << "Monday";
            break;
        case  1:
            cout << "Tuesday";
            break;
        case  2:
            cout << "Wednesday";
            break;
        case  3:
            cout << "Thursday";
            break;
        default:
            cout << "Party";
            break;
    }

    return 0;
}
Omówienie:

W celu ograniczenia wielokrotnego stosowania instrukcji if możemy użyć instrukcji wyboru switch. Konstrukcja tej instrukcji wygląda następująco:

switch (expression) {
   case condition1: /* instrukcje, jeśli expression == condition1 */
      break;
   case condition2: /* instrukcje, jeśli expression == condition2 */
      break;
   /* ... */
   default: /* instrukcje, jeśli żaden z wcześniejszych warunków nie został spełniony */
      break;
}

Wartość expression musi być wartością liczbową typu całkowitego lub wyliczeniowego.

W niektórych przypadkach użycie switch zamiast wielokrotnych instrukcji if-else jest korzystniejsze, ponieważ switch może być szybsze (zwłaszcza przy wielu przypadkach) i bardziej czytelne. Z drugiej strony if-else oferuje większą elastyczność, ponieważ pozwala porównywać bardziej złożone wyrażenia.

Uwaga: Należy pamiętać o użyciu break po zakończeniu instrukcji następujących po case. Przy pominięciu instrukcji break program przejdzie do wykonywania instrukcji z następnego case i dalej aż do napotkania break lub do końca instrukcji switch, co może mieć nieprzewidziane skutki. Oczywiście są sytuacje, gdy jest to celowy zabieg, wtedy zaleca się opatrzeć taki fragment kodu komentarzem.

switch(dzielnik) {
   case 0: cout << "Dzielenie przez zero!"; /*tu powinien być break */
   default: cout << 10 / dzielnik;
}

//Przykład chcianej sytuacji
switch(a % 3) {
   case 0: cout << "Podzielne przez 3"; break;
   case -2:
   case -1:
   case 1:
   case 2: cout << "Niepodzielne przez 3"; break;
}

Zadanie 2

Napisz program w języku C++, który przyjmuje od użytkownika 3 liczby całkowite i wyświetla największą z nich.

Rozwiązanie:
//Version 1.0
#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    cout << (a > b ? (a > c ? a : c) : (b > c ? b : c)) << endl;
    return 0;
}
//Version 2.0
#include <iostream>
using namespace std;

int main() {
   int a, b, c;
   cin >> a >> b >> c;
   a = a > b ? a : b;
   a = a > c ? a : c;
   cout << a << endl;
   return 0;
}

Zadanie 3 – pętla while

Napisz program w języku C++, który wczyta od użytkownika liczbę całkowitą. Następnie program powinien inkrementować tą zmienną i do momentu dopóki będzie mniejsza niż 10 wyświetlać komunikat Za mało!.

Rozwiązanie:
//Version 1.0
#include <iostream>
using namespace std;

int main() {
    int value;
    cin >> value;
    while(value < 10) {
        cout << "Za mało!\n";
        value++;
    }
    return 0;
}
//Version 2.0
#include <iostream>
using namespace std;

int main() {
	int value;
 	cin >> value;
	while(value++ < 10) {
		cout << "Za mało!\n";
	}
	return 0;
}
Omówienie:

W celu wielokrotnego powtórzenia tego samego ciągu instrukcji, aby nie przepisywać tego samego kodu wiele razy, używamy pętli. Pierwszą omówioną pętlą będzie pętla while, która jest jedną z najprostszych w C++. Pętla while powtarza blok kodu tak długo, jak warunek logiczny pozostaje prawdziwy. Warunek jest sprawdzany przed każdym obrotem pętli, co oznacza, że jeśli warunek na początku jest fałszywy, pętla może w ogóle się nie wykonać. Dodatkowo należy zwrócić uwagę na przypadki, w których warunek pętli nigdy nie staję się fałszem. Może to prowadzić do nieskończonej pętli, co jest często błędem w programach.

/* inne instrukcje */
while(warunek) {
   /* instrukcje do wykonania w pętli */
}
/* inne instrukcje */

Zadanie 4 – pętla for

Napisz program w języku C++, który wczyta użytkownika dwie liczby całkowite n i k. Następnie program powinien wyświetlić liczbę n 10 razy. Na koniec program powinien wyświetlić liczbę k n razy.

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
	int n, k;
 	cin >> n >> k;

	for(int i = 0; i < 10; ++i)
		cout << n;
		
	for(int i = 0; i < n; ++i)
		cout << k;

	return 0;
}
Omówienie:

W pewnych sytuacjach wygodniejsze jest używanie pętli for. Instrukcja umożliwia ustawiania zmiennej, sprawdzania warunku i inkrementowania zmiennej w jednej linijce, co często zwiększa czytelność kodu. Pętla for jest szczególnie przydatna, gdy wiemy dokładnie, ile razy chcemy wykonać pewien blok kodu.

/* inne instrukcje */
for (wyrazenie1; wyrazenie2; wyrazenie3) {
   /* instrukcje do wykonania w pętli */
}
/* inne instrukcje */

wyrazenie1 – (opcjonalne) to instrukcja, która będzie wykonana przed pierwszym przebiegiem pętli. Ta instrukcja wykonuje się zawsze, nawet jeśli warunek pętli (wyrazenie2) jest fałszywy.
Zazwyczaj służy do zainicjowania zmiennej, która będzie służyła jako licznik przebiegów pętli.
wyrazenie2 – (opcjonalne) jest warunkiem zakończenia pętli. Pętla wykonuje się tak długo, jak prawdziwy jest ten warunek. Jeżeli nie będzie tego wyrażenia, to pętla wykonuje się zawsze.
wyrazenie3 – (opcjonalne) jest to instrukcja, która wykonywana będzie po każdym przejściu pętli, także po ostatnim.
Zazwyczaj zamieszcza się tu instrukcje, która zwiększa licznik o odpowiednią wartość.

Instrukcja for działa w następujący sposób; w pierwszej kolejności wykonuje wyrazenie1, następnie sprawdza wyrazenie2, jeżeli jest ono prawdziwe, to wykonywany jest blok pętli for (lub pojedyncza instrukcja, jeśli klamry zostały pominięte), na koniec wykonywane jest wyrazenie3. Instrukcję for wewnątrz której nie ma żadnych instrukcji continue lub break (omówimy je później) jest równoważna z następującym zapisem instrukcji while:

/* inne instrukcje */
wyrazenie1;
   while (wyrazenie2) {
      /* instrukcje do wykonania w pętli */
      wyrazenie3;
   }
/* inne instrukcje */
Przykłady:

Wypisywanie na ekran liczb od 1 do 10.

//Version 1.0
for(int i = 1; i <= 10; ++i){
   cout << i << endl;
}
//Version 2.0
for(int i = 1; i <= 10; ++i)
   cout << i << endl;
//Version 3.0
for(int i = 1; i <= 10; cout << i++);
//Version 4.0
int i;
for(i = 1; i < 10; cout << i++);
cout << i;

Kolejny przykład to wyświetlanie liczb najpierw rosnąco od 1 do 5, a następnie malejąco od 6 do 1.

//Version 1.0
int i;
for(i = 1; i <= 5; ++i) cout << i;
for(;i >= 1; --i) cout << i;

Zadanie 5 – pętla do…while

Napisz program w języku C++, który sumuje liczby, dopóki nie zostanie podana wartość 0. Użycie instrukcji do…while pozwala nie inicjalizować zmiennej value sztuczną wartością.

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
    int value, sum = 0;
    do {
        cin >> value;
        sum += value;
    } while(value);
    cout << sum << endl;

    return 0;
}
Omówienie:

Pętle while i for mają jeden zasadniczy mankament – może się zdarzyć, że nie wykonają się ani razu. Aby mieć pewność, że nasza pętla będzie miała co najmniej jeden przebieg musimy zastosować pętle do...while. Jej składnia wygląda następująco:

/* inne instrukcje */
do {
   /* instrukcje do wykonania w pętli */
} while(warunek)
/* inne instrukcje */

Instrukcja do...while jest dość charakterystyczna i w przeciwieństwie do innych pętli sprawdza warunek pod koniec swojego przebiegu. Właśnie to sprawia, że pętla wykona się co najmniej raz.

Przykłady:

Pojedyncza instrukcja zamiast bloku instrukcji w pętli do...while.

int a;
do cout << a; while (++a <= 10);

Zadanie 6 – instrukcje break i continue, pętle nieskończone

Napisz program w języku C++, który pobiera granice przedziału domkniętego w formacie <a;b>, a następnie wyświetla i zlicza wartości bez cyfry 5.

Rozwiązanie:
#include <cstdio>
#include <cmath>

int main() {
    int b, e, counter = 0;
    scanf("<%d;%d>", &b, &e);

    for(int i = b; i <= e; ++i) {
        int value = abs(i);
        bool found = false;
        while(value) {
            if(value % 10 == 5) {
                found = true;
                break;
            }
            value /= 10;
        }
        if(found)
            continue;
        printf("%d ", i);
        counter++;
    }
    printf("\n%d numbers without digit 5 has been found between %d and %d.", counter, b, e);
    return 0;
}
Omówienie:

break – pozwala na opuszczenie wykonywania pętli w dowolnym momencie. Jest ona szczególnie przydatna, gdy chcemy zakończyć pętlę przed jej naturalnym zakończeniem.

for(int i = 0; i < 10; ++i) {
   if(i == 3) break;
   cout << i;
}

continue – w przeciwieństwie do poprzedniej instrukcji, która przerywa wykonywanie pętli, instrukcja continue powoduje przejście do następnej iteracji, o ile warunek pętli jest spełniony, pomijając pozostałe instrukcje w bieżącej iteracji.

for (int i = 1; i < 10; ++i) {
   if (!(i % 3)) continue;
   cout << i;
}

Powyższy kod generuje liczby od 1 do 9 niepodzielne przez 3.


Pętla nieskończona to taka, której warunek zawsze jest prawdziwy. Z takiej pętli można wyjść jedynie za pomocą instrukcji break lub return.

for (;;) { /* ... */ }
for (;1;) { /* ... */ }
for (a;a;a) { /* ... */} /*gdzie a jest dowolną liczba rzeczywistą różną od 0*/
while (1) { /* ... */ }
while (true) { /* ... */ }
do { /* ... */ } while (1);

Zadanie 7

Napisz program w języku C++, który sprawdzi parzystość liczby wczytanej od użytkownika. Program powinien wyświetlić Parzysta, jeśli liczba jest parzysta w innym przypadku program nie powinien wyświetlać nic.

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
    int n;

    cin >> n;
    if(!(n % 2)) {
        cout << "Parzysta";
    }

    return 0;
}

Zadanie 8

Rok przestępny jest podzielny przez 4. Wyjątkiem od tej zasady są lata kończące się na 00, które nie są przestępne. Z kolei wyjątkiem od tego wyjątku są lata podzielne przez 400, które są przestępne. Napisz program, który przyjmie numer roku i wyświetli leap year, jeżeli to rok przestępny, a common year w przeciwnym wypadku.

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
    int year;
    cin >> year;

    if(!(year % 400) || (!(year % 4) && year % 100))
        cout << "leap year";
    else
        cout << "common year";
    return 0;
}

Zadanie 9

Przyjmij cztery wartości zmiennoprzecinkowe oznaczające początek i koniec dwóch domkniętych przedziałów. Wyświetl intersection, jeżeli te przedziały mają część wspólną lub no intersection w przeciwnym wypadku.

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
    float a, b, c, d;
    cin >> a >> b >> c >> d;

    if((a <= c && c <= b) || (c <= a && a <= d)) //if(a <= d && c <= b)
        cout << "intersection";
    else
        cout << "no intersection";

    return 0;
}

Zadanie 10

Zmodyfikuj poprzednie zadanie tak, aby wyświetlało dolną i górną granicę części wspólnej przedziału, jeżeli taka istnieje.

Rozwiązanie:
//Version 1.0
#include <iostream>

int main() {
    double a, b, c, d, start, end;
    
    std::cin >> a >> b >> c >> d;
    if (a <= d && c <= b) {
        start = a > c ? a : c;
        end = b < d ? b : d;
        std::cout << "Przedziały mają część wspólną: [" << start << ", " << end << "]\n";
    } else {
        std::cout << "Przedziały nie mają części wspólnej." << std::endl;
    }

    return 0;
}
//Version 2.0
#include <iostream>

int main() {
    double a, b, c, d;
    
    std::cin >> a >> b >> c >> d;
    if (a <= d && c <= b)
        std::cout << "Przedziały mają część wspólną: [" << std::max(a, c) << ", " << std::min(b, d) << "]\n";
    else
        std::cout << "Przedziały nie mają części wspólnej." << std::endl;

    return 0;
}

Zadanie 11

Napisz program w języku C++, który policzy z ilu cyfr składa się podana liczba całkowita (w zapisie dziesiętnym).

Rozwiązanie:
#include <iostream>
using namespace std;

int main() {
    int value;
    int c = 0;

    cin >> value;
    do ++c; while(value /= 10);
    cout << c;

    return 0;
}

Zadanie 12

Napisz program w języku C++ wyświetlający ponownie liczbę dowolnej długości.

Rozwiązanie:
#include <cstdio>

int main() {
    int n;
    for(;;) {
        if(scanf("%1d", &n) != 1) break;
        printf("%d", n);
    }
    return 0;
}

Zadanie 13

Napisz program w języku C++, który będzie pobierał ze standardowego wejścia liczby zmiennoprzecinkowe i sumował je, aż do momentu przekroczenia przez sumę liczby 100 lub podania liczby 0. Program powinien wówczas wyświetlić o ile suma przekroczyła liczbę 100 i zakończyć działanie.

Rozwiązanie:
//Version 1.0
#include <iostream>

int main() {
    double value, sum = 0;

    while (sum <= 100) {
        std::cin >> value;
        if (!value) // if (value == 0)
            break;
        sum += value;
    }

    if (sum > 100) std::cout << "Suma przekroczyła 100 o " << sum - 100 << std::endl;
    else std::cout << "Suma nie przekroczyła 100." << std::endl;

    return 0;
}
//Version 2.0
#include <iostream>

int main() {
    double value, sum = 0;

    do {
        std::cin >> value;
        sum += value;
    } while (sum <= 100 and value); 

    if (sum > 100) std::cout << "Suma przekroczyła 100 o " << sum - 100 << std::endl;
    else std::cout << "Suma nie przekroczyła 100." << std::endl;

    return 0;
}

Zadanie 14

Napisz program w języku C++, który wyświetli tabliczkę mnożenia od 0x0 do 10x10 zachowując poprawne odstępy.

Rozwiązanie:
#include <iostream>
#include <iomanip> //setw()

int main() {
    const int size = 11;
    const int value_width = 4;

    for (int i = 0; i < size; ++i) {
        for (int j = 0; j < size; ++j)
            std::cout << std::setw(value_width) << i * j;
        std::cout << std::endl;
    }

    return 0;
}

Zadanie 15

Zmodyfikuj poprzedni program tak, aby pokazywał fragment tej tabliczki – trójkąt składający się z wyników niepowtarzających się działań (górny lub dolny do wyboru).

Rozwiązanie:
#include <iostream>
#include <iomanip>

int main() {
    const int size = 10;
    const int value_width = 4;
    const bool triangle = false;

    if (triangle)
        for (int i = 0; i <= size; ++i) {
            for (int j = 0; j <= i; ++j)
                std::cout << std::setw(value_width) << i * j;
            std::cout << std::endl;
        }
    else
        for (int i = 0; i <= size; ++i) {
            for (int j = 0; j < i; ++j)
                std::cout << std::setw(value_width) << ' ';
            for (int j = i; j <= size; ++j)
                std::cout << std::setw(value_width) << i * j;
            std::cout << std::endl;
        }

    return 0;
}

Zadanie 16

Napisz program w języku C++, który narysuje na ekranie choinkę zbudowaną z gwiazdek * o zadanej wysokości.

Rozwiązanie:
#include <iostream>

int main() {
    unsigned int height;
    std::cin >> height;
    
    for (unsigned int i = 0; i < height; ++i) {
        for (int j = 0; j < height - i - 1; ++j) std::cout << " ";
        for (unsigned int j = 0; j < 2 * i + 1; ++j) std::cout << "*";
        std::cout << std::endl;
    }
    
    for (unsigned int i = 0; i < height - 1; ++i) std::cout << " ";
    std::cout << "*" << std::endl;
    
    return 0;
}

Zadanie 17

Napisz program w języku C++, który wczyta ze standardowego wejścia dwie liczby naturalne n i m, a następnie wyświetli szachownicę o rozmiarze nxm, w taki sposób, by występowały w niej na przemian znaki # oraz o.

Rozwiązanie:
#include <iostream>

int main() {
    unsigned int n, m;
    std::cin >> n >> m;
    
    for (unsigned int i = 0; i < n; ++i) {
        for (unsigned int j = 0; j < m; ++j)
            std::cout << ((i + j) % 2 ? "o" : "#");
        std::cout << std::endl;
    }
    
    return 0;
}

Zadanie 18

Kalendarz gregoriański, znajdujący się obecnie w powszechnym użyciu, został wprowadzony w piątek, 15 października 1582 roku. Korzystając z tej wiedzy, napisz program, który dla tej i każdej kolejnej daty wyświetli odpowiadający jej dzień tygodnia. Data powinna być podana w formacie dd.MM.yyyy. W zadaniu zdefiniuj i wykorzystaj typ wyliczeniowy Weekday {Monday, Tuesday, …, Sunday}.

Rozwiązanie:
#include <cstdio>

int main() {
    unsigned int dd, mm, yy, century, year_of_century, result;
    
    scanf("%2d.%2d.%4d", &dd, &mm, &yy);
    
    if (mm < 3) {
        mm += 12;
        --yy;
    }
    century = yy / 100;
    year_of_century = yy % 100;
    result = (dd + (13 * (mm + 1) / 5) + year_of_century + (year_of_century / 4) + (century / 4) - 2 * century) % 7;

    switch (result) {
        case 2:
            printf("Poniedziałek\n");
            break;
        case 3:
            printf("Wtorek\n");
            break;
        case 4:
            printf("Środa\n");
            break;
        case 5:
            printf("Czwartek\n");
            break;
        case 6:
            printf("Piątek\n");
            break;
        case 0:
            printf("Sobota\n");
            break;
        case 1:
            printf("Niedziela\n");
            break;
    }

    return 0;
}

Zadanie 19

Napisz program w języku C++, który wczyta ze standardowego wejścia liczbę całkowitą n, następnie wypisze wszystkie dwuwyrazowe wariacje z powtórzeniami dla zbioru liczb [1;n].

Rozwiązanie:
#include <iostream>

int main() {
    int n;
    std::cin >> n;
    
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            std::cout << i << " " << j << std::endl;

    return 0;
}

Zadanie 20

Napisz program w języku C++, który wczytuje ze standardowego wejścia nieujemną liczbę n i wypisuje na standardowym wyjściu wartość ⌊√n⌋ (wartość √n zaokrągloną w dół do najbliższej wartości całkowitoliczbowej). Program napisz bez użycia funkcji z biblioteki matematycznej. Przybliżenie pierwiastka kwadratowego zrealizuj za pomocą metody Herona.

Rozwiązanie:
#include <iostream>

int main() {
    unsigned int n;
    std::cin >> n;
    
    float square = float(n), tmp = 1.f;
    while(square > tmp) {
        square = (square + tmp) / 2.f;
        tmp = n / square;
    }
    std::cout << int(square) << std::endl;

    return 0;
}

Zadanie 21

Napisz program w języku C++, który pobierze ze standardowego wejścia liczbę całkowitą dodatnią x i wyświetli wszystkie liczby całkowite z jednostronnie domkniętego zakresu [0, x).

Rozwiązanie:
#include <iostream>

int main() {
    unsigned int x;
    
    std::cin >> x;
    for (unsigned int i = 0; i < x; ++i) 
        std::cout << i << " "; std::cout << std::endl;
    
    return 0;
}

Zadanie 22

Zmodyfikuj poprzedni program tak, aby pobierał liczbę całkowitą (także ujemną) i wyświetlał wszystkie liczby całkowite z zakresu domkniętego [x, 0] lub [0, x].

Rozwiązanie:
#include <iostream>

int main() {
    int x;
    
    std::cin >> x;
    if(x > 0) {
        for(int i = 0; i <= x; ++i) 
            std::cout << i << " "; 
        std::cout << std::endl;
    } else {
        for(int i = x; i <= 0; ++i) 
            std::cout << i << " "; 
        std::cout << std::endl;
    }
    
    return 0;
}

Zadanie 23

Napisz program w języku C++, który pobierze liczbę całkowitą dodatnią n oraz n liczb całkowitych. Program powinien wyświetlić średnią arytmetyczną tych liczb.

Rozwiązanie:
#include <iostream>

int main() {
    unsigned int n;
    std::cin >> n;
    
    int value, sum = 0;
    
    for (unsigned int i = 0; i < n; ++i) {
        std::cin >> value;
        sum += value;
    }
    
    double avg = static_cast<double>(sum) / n;
    std::cout << "Średnia arytmetyczna: " << avg << std::endl;
    
    return 0;
}

Zadanie 24

Napisz program w języku C++, który pobierze liczbę całkowitą dodatnią n oraz n liczb całkowitych. Program powinien wyświetlić największą spośród tych liczb.

Rozwiązanie:
#include <iostream>
#include <climits>

int main() {
    unsigned int n;
    
    std::cin >> n;

    int value, max = INT_MIN;
    for (int i = 0; i < n; ++i) {
        std::cin >> value;
        if (value > max) max = value;
    }

    std::cout << "Największa liczba to: " << max << std::endl;

    return 0;
}

Zadanie 25

Napisz program w języku C++, który będzie pobierał ze standardowego wejścia liczby zmiennoprzecinkowe i sumował je, aż do momentu podania liczby 0. Wówczas program powinien wyświetlić sumę liczb.

Rozwiązanie:
#include <iostream>

int main() {
    float value, sum = 0;

    do {
        std::cin >> value;
        sum += value;
    } while (value);
    
    std::cout << "Suma liczb to: " << sum << std::endl;

    return 0;
}

Przygotuj się na kolejne laboratorium!

W celu przygotowania się na kolejne zajęcia, spróbuj wykonać poniższe zadania samodzielnie.

Zadanie 1

Napisz program w języku C++, który utworzy 5-elementową tablicę liczb całkowitych i zapisze w jej komórkach 5 liczb podanych ze standardowego wejścia. Na koniec program powinien wyświetlić elementy tablicy.

Zadanie 2

Napisz program w języku C++, który utworzy dwie tablice liczb całkowitych n- i m-elementową. Rozmiary n i m zdefiniuj w kodzie z użyciem stałych. Zapełnij te tablice danymi (w dowolny sposób, np. wprowadzonymi ze standardowege wejścia, kolejnymi lub losowymi liczbami). Następnie utwórz tablicę o rozmiarze n + m i zapisz w jej n początkowych komórkach zawartość tablicy n-elementowej, a w pozostałych zawartość tablicy m-elementowej.

Zadanie 3

Napisz program w języku C++, który utworzy n-elementową tablicę liczb całkowitych i zapełni ją danymi. Program powinien wyświetlić indeks komórki tablicy, w której została znaleziona liczba o największej wartości. Jeżeli ta sama liczba pojawia się w większej liczbie komórek, należy wyświetlić indeks dowolnej z nich.

Zadanie 4

Zmodyfikuj program z poprzedniego zadania tak, aby w przypadku, gdy liczba o największej wartości pojawia się w tablicy wielokrotnie, program wyświetlił indeksy wszystkich komórek, w których znajduje się ta liczba.

Zadanie 5

Napisz program w języku C++, który utworzy n-elementową tablicę liczb całkowitych i zapełni ją danymi. Program powinien zmodyfikować zawartość tablicy tak, aby liczby parzyste znalazły się w początkowej, a liczby nieparzyste w końcowej części tablicy. Kolejność liczb w ramach grupy parzystych i nieparzystych jest dowolna.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *