• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Proste ćwiczenie/zadanie z programowania

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
271 wizyt
pytanie zadane 17 grudnia 2016 w C i C++ przez wojciech.szlosek Użytkownik (960 p.)
zamknięte 18 grudnia 2016 przez wojciech.szlosek
Proszę o wykonanie zadania:

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:

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.
komentarz zamknięcia: qwerty

2 odpowiedzi

+1 głos
odpowiedź 18 grudnia 2016 przez playerony Pasjonat (15,220 p.)

Chyba o to chodziło:

#include <iostream>
#include <math.h>

using namespace std;

void fillLine(size_t length, char mark){
    for(size_t i=0 ; i<length ; i++)
        cout << mark;
    cout << endl;
}

void drawDoubleXline(size_t length, char markX, char markDot){
    cout << markX;
    for(size_t i=1 ; i<length - 1 ; i++)
        cout << markDot;
    cout << markX << endl;
}

void drawDoubleDotLine(size_t length, char markX, char markDot){
    for(size_t i=0 ; i<length ; i++)
        if(i==1 || i==length-2)
            cout << markDot;
        else
            cout << markX;
    cout << endl;
}

void drawFourXline(size_t length, char markX, char markDot){
    for(size_t i=0 ; i<length ; i++)
        if(i==0 || i==2 || i==length-1 || i==length-3)
            cout << markX;
        else
            cout << markDot;
    cout << endl;
}

int main()
{
    char markX = 'X';
    char markDot = '.';
    size_t n, dots = 0;
    cin >> n;

    float lineWithFourX = 0.4f * n;
    float lineWithDoubleX = (0.2f * n) / 2;
    float lineWithDoubleDot = (0.2f * n) / 2;

    fillLine(n, markX);

    for(size_t i=0 ; i<lineWithDoubleX ; i++){
        drawDoubleXline(n, markX, markDot);
        dots+=(n-2);
    }

    for(size_t i=0 ; i<lineWithDoubleDot ; i++){
        drawDoubleDotLine(n, markX, markDot);
        dots+=2;
    }

    for(size_t i=0 ; i<lineWithFourX ; i++){
        drawFourXline(n, markX, markDot);
        dots+=(n-4);
    }

    for(size_t i=0 ; i<lineWithDoubleDot ; i++){
        drawDoubleDotLine(n, markX, markDot);
        dots+=2;
    }

    for(size_t i=0 ; i<lineWithDoubleX ; i++){
        drawDoubleXline(n, markX, markDot);
        dots+=(n-2);
    }

    fillLine(n, markX);

    cout << dots << endl;

    return 0;
}

 

0 głosów
odpowiedź 17 grudnia 2016 przez Squidy Bywalec (2,310 p.)

Nie rozumiem o co chodzi z tymi kropkami. Może to coś pomoże. :)

#include <iostream>

using namespace std;


int main()
{
    int n, m;
    cout << "Podaj liczbe n" << endl;
    cin >> n;
    cout << "Podaj liczbe m" << endl;
    cin >> m;
    for(int i = 0; i < n; i++){
        for(int i = 0; i < m; i++){
             cout << "x";
        }
        cout << endl;;
    }
    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 170 wizyt
pytanie zadane 12 grudnia 2019 w C i C++ przez mikuss Nowicjusz (150 p.)
0 głosów
1 odpowiedź 114 wizyt
pytanie zadane 30 czerwca 2017 w Python przez DODO Bywalec (2,950 p.)
0 głosów
2 odpowiedzi 168 wizyt

90,900 zapytań

139,572 odpowiedzi

313,905 komentarzy

60,373 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...