Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 07:39   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию Нарисовать квадрат

Доброго времени суток. Стоит задача написать программу, которая считывает размер стороны квадрата и рисует его из звездочек...


Программу надо написать без использования массивов. У меня выводит только 2 стороны, как можно доработать программу? Спасибо.

Код:
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;

int main()
{
	setlocale (LC_CTYPE,"Russian");
	int n = 0, m = 0;
	char zv = '*';
	cout << "Сколько звезд? ";
	cin >> n;

	for (int i = 0; i < n; i++)
	{
			
			cout << zv;
		
	}

	for (int k = 0; k < n; k++)
	{
		cout << zv << endl;
	}



	_getch();
	return 0;
}
Dima-War вне форума Ответить с цитированием
Старый 19.03.2012, 07:44   #2
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Для правой стенки думаю можно задать условие типа если переменная равна n (т.е. последняя звездочка верхней стороны) то рисовать стенку вниз, а вот как для нижней стенки сделать даже не догадываюсь...
Dima-War вне форума Ответить с цитированием
Старый 19.03.2012, 10:46   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

А, квадрат без внутренности?

Код:
for (int i = 0; i < n; ++i) {
  if (i == 0 || i == n - 1) { // верхняя и нижняя стенки
    for (int j = 0; j < n; ++j) {
      std::cout << '*';
    }
  } else {
    std::cout << '*';
    for (int j = 0; j < n - 2; ++j) {
      std::cout << ' ';
    }
    std::cout << '*';
  }
  std::cout << std::endl;
}
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 19.03.2012, 12:27   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
const size_t size = 10;

for (size_t i = 0; i < size; i++) {
	for (size_t j = 0; j < size; j++)
		cout << ((i == 0 || j == 0 || i == size - 1 || j == size - 1) ? '*' : ' ');
	cout << endl;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.03.2012, 12:50   #5
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

pproger, красиво!)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 19.03.2012, 17:40   #6
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

А мог бы кто нить отправить код с комментариями и не совсем сложный... Granus, мб что то похожее на твое только без std::, а то я не знаю что это)

UP
Еще раз прошу, напишите пожалуйста легкий код, который дорисует две оставшиеся стенки (комментарии приветствуются). Не хочу двигаться дальше в изучении, пока не решу эту задачу...

Последний раз редактировалось ACE Valery; 19.03.2012 в 22:50.
Dima-War вне форума Ответить с цитированием
Старый 19.03.2012, 22:50   #7
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Granus, мб что то похожее на твое только без std::
Ну а погуглить что такое std не судьба, видимо?
Тем более, что у вас в программе уже есть
Код:
using namespace std;
Значит, в коде вам std:: писать нигде не надо.

Хотя вообще странно, что вы задумались над тем, что за std у Granus'a и не задумались над тем, что за std у вас...
И не понятно, чем вас код pproger'а не устроил...

На будущее: никаких "апов".
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В центре экрана нарисовать квадрат и выполнить его диагональную штриховку в виде двух треугольников, расположенных еа од zzz6 Помощь студентам 1 06.07.2011 14:26
встроеный ассемблер в паскаль-нарисовать квадрат (или фигуру сложнее), управляемый стрелками с клавиатуры zombie2478 Помощь студентам 2 23.05.2011 01:00
Нарисовать квадрат! SwiP Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 02.02.2011 19:23
нарисовать квадрат с длиной стороны 100 пикселей, используя процедуру linerel(x,y:integer) Кася_ Помощь студентам 6 23.02.2009 19:13