Informatyka dla klasy IK

Ćwiczenia w programowaniu w C++

Instrukcja do ćwiczenia

  1. Utwórz w środowisku Code::Blocks projekt konsoli.
  2. Na samym początku programu zapisz w komentarzu swoje imię, nazwisko, klasę oraz numer ćwiczenia, które otrzymasz od nauczyciela.
  3. Napisz i uruchom odpowiedni program zgodny z tematem ćwiczenia.
  4. Za pomocą klienta FTP FileZilla prześlij plik main.cpp z katalogu projektu na komputer nauczyciela.

Tematy ćwiczeń

  1. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XX......XX
    X........X
    X.XXXXXX.X
    X.XXXXXX.X
    X.XXXXXX.X
    X.XXXXXX.X
    X.XXXXXX.X
    X.XXXXXX.X
    X........X
    XX......XX

    Na końcu program ma podać liczbę znaków X w figurze.

  2. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X........X
    X.XXXXXX.X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X.XXXXXX.X
    X........X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  3. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    X........X
    X........X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X.X....X.X
    X........X
    X........X

    Na końcu program ma podać liczbę znaków X w figurze.
     
  4. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X........X
    X.X......X
    X.XX.....X
    X.XXX....X
    X.XXXX...X
    X.XXXXX..X
    X.XXXXXX.X
    X........X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  5. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X........X
    X.X.X.X..X
    X..X.X.X.X
    X.X.X.X..X
    X..X.X.X.X
    X.X.X.X..X
    X..X.X.X.X
    X........X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków X w figurze.
     
  6. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X...XX...X
    X...XX...X
    X...XX...X
    XXXXXXXXXX
    XXXXXXXXXX
    X...XX...X
    X...XX...X
    X...XX...X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  7. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X....X...X
    X....X...X
    X....X...X
    X....XXXXX
    XXXXX....X
    X...X....X
    X...X....X
    X...X....X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków X w figurze.
     
  8. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    XXXXXXXXXX
    XX......XX
    XX......XX
    XX......XX
    XX......XX
    XX......XX
    XX......XX
    XXXXXXXXXX
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  9. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    X........X
    .XXXXXXXX.
    .X......X.
    .X......X.
    .X......X.
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków X w figurze.
     
  10. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX
    X........X
    X........X
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  11. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X...XX...X
    X...XX...X
    X...XX...X
    X...XX...X
    X...XX...X
    X...XX...X
    X...XX...X
    X...XX...X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków X w figurze.
     
  12. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X....XXXXX
    X....XXXXX
    X....XXXXX
    X....XXXXX
    X........X
    X........X
    X........X
    X........X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  13. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XX.......X
    X.XX.....X
    X...XX...X
    X.....XX.X
    X.......XX
    XX.......X
    X.XX.....X
    X...XX...X
    X.....XX.X
    X.......XX
    s
    Na końcu program ma podać liczbę znaków X w figurze.
     
  14. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XX........
    XXXX......
    XXXXXX....
    XXXXXXXX..
    XXXXXXXXXX
    XXXXXXXXXX
    XXXXXXXX..
    XXXXXX....
    XXXX......
    XX........

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  15. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    X.X.X.X.X.
    X.X.X.X.X.
    X.X.X.X.X.
    X.X.X.X.X.
    X.X.X.X.X.
    XXXXXXXXXX
    ..........
    XXXXXXXXXX
    ..........
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków X w figurze.
     
  16. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    ..........
    .X..XXXXX.
    .XXX..XXX.
    .XXXXX..X.
    .XXXXXXX..
    ..XXXXXXX.
    .X..XXXXX.
    .XXX..XXX.
    .XXXXX..X.
    ..........

    Na końcu program ma podać liczbę znaków kropki w figurze.
     
  17. Napisz program w języku C++, który odczyta z klawiatury liczbę n, a następnie wyświetli w oknie konsoli prostokąt o wymiarach n x n z literek X oraz znaku kropki o następującym kształcie (dla n = 10):

    XXXXXXXXXX
    X.X.X...XX
    XX.X...X.X
    X.X.X.X..X
    XX.X.X...X
    X...X.X.XX
    X..X.X.X.X
    X.X...X.XX
    XX...X.X.X
    XXXXXXXXXX

    Na końcu program ma podać liczbę znaków kropki w figurze.

Przykładowe rozwiązanie

Figury mogą wyglądać skomplikowanie na pierwszy rzut oka, jednak sposób rozwiązania zadań jest prosty. Należy daną figurę rozłożyć na najprostsze elementy składowe, napisać dla nich warunki logiczne, po czym połączyć te warunki operatorem ||.

Rozwiążmy dla przykładu zadanie nr 17:

XXXXXXXXXX
X.X.X...XX
XX.X...X.X
X.X.X.X..X
XX.X.X...X
X...X.X.XX
X..X.X.X.X
X.X...X.XX
XX...X.X.X
XXXXXXXXXX

 

Figurę rozkładamy:

j i0123456789
0  XXXXXXXXXX
1  X.X.X...XX
2  XX.X...X.X
3  X.X.X.X..X
4  XX.X.X...X
5  X...X.X.XX
6  X..X.X.X.X
7  X.X...X.XX
8  XX...X.X.X
9  XXXXXXXXXX

   

j i0123456789
0  XXXXXXXXXX
1  ..........
2  ..........
3  ..........
4  ..........
5  ..........
6  ..........
7  ..........
8  ..........
9  XXXXXXXXXX

  ((j == 0) || (j == n - 1))

j i0123456789
0  X........X
1  X........X
2  X........X
3  X........X
4  X........X
5  X........X
6  X........X
7  X........X
8  X........X
9  X........X

  ((i == 0) || (i == n - 1))

j i0123456789
0  .........X
1  ........X.
2  .......X..
3  ......X...
4  .....X....
5  ....X.....
6  ...X......
7  ..X.......
8  .X........
9  X.........

  (i == n - 1 - j)

j i0123456789
0  .X.X......
1  X.X.X.....
2  .X.X......
3  X.X.X.....
4  .X.X......
5  ..........
6  ..........
7  ..........
8  ..........
9  ..........

  ((i < n/2) && (j < n/2) && ((i+j) % 2))

j i0123456789
0  ..........
1  ..........
2  ..........
3  ..........
4  ..........
5  ......X.X.
6  .....X.X.X
7  ......X.X.
8  .....X.X.X
9  ......X.X.

  ((i >= n/2) && (j >= n/2) && ((i+j) % 2))

Mając cząstkowe wyrażenia, tworzymy program:

// Ćwiczenie nr 8
//---------------

#include <iostream>

using namespace std;

int main()
{
    int n, i, j, lk = 0;
    cout << "n = "; cin >> n;
    for(j = 0; j < n; j++)
    {
        for(i = 0; i < n; i++)
        if(((j == 0) || (j == n - 1))||
           ((i == 0) || (i == n - 1))||
            (i == n - 1 - j)||
           ((i < n/2)  && (j < n/2)  && ((i+j) % 2))||
           ((i >= n/2) && (j >= n/2) && ((i+j) % 2)))
            cout << "X";
        else
        {
            cout << ".";
            lk++;
        }
        cout << endl;
    }
    cout << "Liczba kropek = " << lk << endl;
    return 0;
}

i otrzymujemy następujący wynik:

n = 30
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X.X.X.X.X.X.X.X.............XX
XX.X.X.X.X.X.X.............X.X
X.X.X.X.X.X.X.X...........X..X
XX.X.X.X.X.X.X...........X...X
X.X.X.X.X.X.X.X.........X....X
XX.X.X.X.X.X.X.........X.....X
X.X.X.X.X.X.X.X.......X......X
XX.X.X.X.X.X.X.......X.......X
X.X.X.X.X.X.X.X.....X........X
XX.X.X.X.X.X.X.....X.........X
X.X.X.X.X.X.X.X...X..........X
XX.X.X.X.X.X.X...X...........X
X.X.X.X.X.X.X.X.X............X
XX.X.X.X.X.X.X.X.............X
X.............X.X.X.X.X.X.X.XX
X............X.X.X.X.X.X.X.X.X
X...........X...X.X.X.X.X.X.XX
X..........X...X.X.X.X.X.X.X.X
X.........X.....X.X.X.X.X.X.XX
X........X.....X.X.X.X.X.X.X.X
X.......X.......X.X.X.X.X.X.XX
X......X.......X.X.X.X.X.X.X.X
X.....X.........X.X.X.X.X.X.XX
X....X.........X.X.X.X.X.X.X.X
X...X...........X.X.X.X.X.X.XX
X..X...........X.X.X.X.X.X.X.X
X.X.............X.X.X.X.X.X.XX
XX.............X.X.X.X.X.X.X.X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Liczba kropek = 560

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe