Домашнее задание для ПО 2.11 по системному программированию от 10.02.20
учебно-методическое пособие
Предварительный просмотр:
Двадцать шестое задание
Составить программу, которая будет печатать ромб одним из значков (* или + или #) Выбор значков организовать оператором switch.
///Программа выводит на экран ромб///с заданной шириной и высотой
#include
#include
using namespace std;
///передаем функции символ которым будет отображаться ромб, высоту и ширину
void fn_normal_out(char symbol,int height,int width)
{
int position=0;
for(int y=1;y<=height;++y)///высота
{
for(int x=1;x<=width;++x)///ширина
{
///строим ромб
if(x==(width/2+1+position)||x==(width/2+1-position))
{
cout<
}
else
{
cout<<" ";
}
}
cout<
if(y
else position--;
}
}
int main()
{
SetConsoleOutputCP(1251);///русский язык
cout<<"Введите 1 для печати ромба '*' "<
cout<<"Введите 2 для печати ромба '+' "<
cout<<"Введите 3 для печати ромба '#' "<
cout<<"Пожалуйста, введите число 1 - 3: ";
int second_choice;
cin>>second_choice;
if(second_choice<=0||second_choice>3)///Error
{
cout<<"\nОшибка. Не верный ввод, программа закрывается...\n";
return 0;
}
cout<<"\nВводить нужно только положительные нечетные числа,\n"
<<"иначе ромб не построиться"<
h:cout<<"\nВведите высоту ромба: ";
int height;
cin>>height;
if(height<0||(!(height%2)))///Error
{
cout<<"\nОшибка.\n";
goto h;
}
w:cout<<"\nВведите ширину ромба: ";
int width;
cin>>width;
if(width<0||(!(width%2)))///Error
{
cout<<"\nОшибка.\n";
goto w;
}
switch(second_choice)
{
case 1:
{
char symbol='*';
fn_normal_out(symbol,height,width);
break;
}
case 2:
{
char symbol='+';
fn_normal_out(symbol,height,width);
break;
}
case 3:
{
char symbol='#';
fn_normal_out(symbol,height,width);
break;
}
default:
{
cout<
return 0;
}
}
return 0;
}