Ĺadny brzuch
Witam mam napisany programik.
Tutaj wstawiam tylko fragment który muszę dopracować.
Otórz program musi narysować na ekranie literę P o zadanej wysokości i szerokośći.
Zablokowałem możliwość wyboru liczb poniżej 3 i powyżej 30.
Generalnie chodzi o to że kiedy podaję wysokość 5 to faktyczna wysokość jest 10 bo program wylicza narysowany kwadrat i taka jaka była wysokosc kwadratu jest dodawana pod spodem ilosc gwiazdek dzieki czemu tworzy się ogonek od P.
Chciał bym tak przebudować program aby po wpisaniu np wys 11 szerokosc 9 była faktycznie taka wysokość jaką podał urzytkownik.
Ma ktoś jakiś pomysł?
Ja myśle że trzeba Podać iny przedział możliwych do wybrania liczb.
Umożliwić wpisanie tylko liczb parzystych. <-- nie weim jak
Program dzielił by podaną wysokość i dzielił ją na dwa wtedy litera miała by odpowiednią wysokość jaką podał użytkownik ale jak to zrobić żeby i wpierw narysowany kwadrat zgadzał się z wysokością. <-- nie weim jak
#include <iostream> #include <conio.h> using namespace std; int main() { float i,j; float szerokosc,wysokosc; cout << " SZEROKOSC LITERY P (min. 3) ="; cin >> szerokosc; cout << " WYSOKOSC LITERY P (min. 3) ="; cin >> wysokosc; if (szerokosc<3) { cout << endl << endl; cout << "ERROR 001 " << endl; } else if (szerokosc>30) { cout << endl << endl; cout << "ERROR 002" << endl; } else if (wysokosc<3) { cout << endl << endl; cout << "ERROR 002" << endl; } else if (wysokosc>30) { cout << endl << endl; cout << "ERROR 002" << endl; } else { for (i=0;i<szerokosc;i++) cout << "X"; cout << endl; for (j=0;j<wysokosc-2;j++) { cout << "X"; for (i=0;i<szerokosc-2;i++) cout << " "; cout << "X"; cout << endl; } for (i=0;i<szerokosc;i++) cout << "X"; cout << endl; for (j=0;j<wysokosc;j++) cout << "X" << endl; } system("PAUSE"); return 0; }
Sprawdzać podzielność liczb możesz przy pomocy "%" (reszta z dzielenia).
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
Na główne pytanie odpowiedziałeś sobie sam. Skoro program rysuje 2x wyższą literę niż podana wysokość, to po wczytaniu wysokości (zanim program zacznie rysować literę) podziel ją przez 2.
Sprawdzać podzielność liczb możesz przy pomocy "%" (reszta z dzielenia).
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
Na główne pytanie odpowiedziałeś sobie sam. Skoro program rysuje 2x wyższą literę niż podana wysokość, to po wczytaniu wysokości (zanim program zacznie rysować literę) podziel ją przez 2.
Ok to drugie wiem jak zrobić. A pierwsze nie bardzo wiem jak zapisać za pomoca kodu.
Najlepiej bym wykluczył z zestawu liczby nieparzyste:
if (wysokość==5) to koniec
Jesli nie to sprawdz czy jest rowna 7 i dalej 9 i 11 itd. ale to będzie dużo linijek i pewnie tak troche dziecinne obejscie.
Rozumiem że to
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
sprawdzam zaraz po podaniu zmiennych ale nie wiem jak to napisać w kodzie.
Jakoś hmmm
No jakoś nie weim.
A bardzo chciał bym wiedzieć.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Tutaj wstawiam tylko fragment który muszę dopracować.
Otórz program musi narysować na ekranie literę P o zadanej wysokości i szerokośći.
Zablokowałem możliwość wyboru liczb poniżej 3 i powyżej 30.
Generalnie chodzi o to że kiedy podaję wysokość 5 to faktyczna wysokość jest 10 bo program wylicza narysowany kwadrat i taka jaka była wysokosc kwadratu jest dodawana pod spodem ilosc gwiazdek dzieki czemu tworzy się ogonek od P.
Chciał bym tak przebudować program aby po wpisaniu np wys 11 szerokosc 9 była faktycznie taka wysokość jaką podał urzytkownik.
Ma ktoś jakiś pomysł?
Ja myśle że trzeba Podać iny przedział możliwych do wybrania liczb.
Umożliwić wpisanie tylko liczb parzystych. <-- nie weim jak
Program dzielił by podaną wysokość i dzielił ją na dwa wtedy litera miała by odpowiednią wysokość jaką podał użytkownik ale jak to zrobić żeby i wpierw narysowany kwadrat zgadzał się z wysokością. <-- nie weim jak
#include <iostream> #include <conio.h> using namespace std; int main() { float i,j; float szerokosc,wysokosc; cout << " SZEROKOSC LITERY P (min. 3) ="; cin >> szerokosc; cout << " WYSOKOSC LITERY P (min. 3) ="; cin >> wysokosc; if (szerokosc<3) { cout << endl << endl; cout << "ERROR 001 " << endl; } else if (szerokosc>30) { cout << endl << endl; cout << "ERROR 002" << endl; } else if (wysokosc<3) { cout << endl << endl; cout << "ERROR 002" << endl; } else if (wysokosc>30) { cout << endl << endl; cout << "ERROR 002" << endl; } else { for (i=0;i<szerokosc;i++) cout << "X"; cout << endl; for (j=0;j<wysokosc-2;j++) { cout << "X"; for (i=0;i<szerokosc-2;i++) cout << " "; cout << "X"; cout << endl; } for (i=0;i<szerokosc;i++) cout << "X"; cout << endl; for (j=0;j<wysokosc;j++) cout << "X" << endl; } system("PAUSE"); return 0; }
Sprawdzać podzielność liczb możesz przy pomocy "%" (reszta z dzielenia).
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
Na główne pytanie odpowiedziałeś sobie sam. Skoro program rysuje 2x wyższą literę niż podana wysokość, to po wczytaniu wysokości (zanim program zacznie rysować literę) podziel ją przez 2.
Sprawdzać podzielność liczb możesz przy pomocy "%" (reszta z dzielenia).
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
Na główne pytanie odpowiedziałeś sobie sam. Skoro program rysuje 2x wyższą literę niż podana wysokość, to po wczytaniu wysokości (zanim program zacznie rysować literę) podziel ją przez 2.
Ok to drugie wiem jak zrobić. A pierwsze nie bardzo wiem jak zapisać za pomoca kodu.
Najlepiej bym wykluczył z zestawu liczby nieparzyste:
if (wysokość==5) to koniec
Jesli nie to sprawdz czy jest rowna 7 i dalej 9 i 11 itd. ale to będzie dużo linijek i pewnie tak troche dziecinne obejscie.
Rozumiem że to
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
4 % 2 = 0
sprawdzam zaraz po podaniu zmiennych ale nie wiem jak to napisać w kodzie.
Jakoś hmmm
No jakoś nie weim.
A bardzo chciał bym wiedzieć.