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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 16:08   #1
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
Вопрос выводит на экран квадрат из *

Надо написать программу с оператором goto для моделирования вложеной структуры циклов, которая выводит на экран квадрат, составленый из символов *.

Как это можно сделать?

Например для числа 4 квадрат будет иметь вид:
Изображения
Тип файла: gif 4.gif (891 байт, 209 просмотров)
volery вне форума Ответить с цитированием
Старый 25.04.2010, 16:28   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Это книжная задача. Если вы таким образом пытаетесь научится программировать, то я вам скажу сразу - бросайте это дело. Или же учитесь сами решать такие простые задачи.
MaTBeu вне форума Ответить с цитированием
Старый 25.04.2010, 17:14   #3
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Мне кажется сдесь у всех задачи с книжек!!!
У меня есть вариант решения этой задачи. Но я непонимаю как сделать через goto. Везде пишут что это ненужний и безполезный оперетор.
volery вне форума Ответить с цитированием
Старый 25.04.2010, 21:01   #4
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Цитата:
Сообщение от volery Посмотреть сообщение
Мне кажется сдесь у всех задачи с книжек!!!
Отнюдь.

Цитата:
Сообщение от volery Посмотреть сообщение
У меня есть вариант решения этой задачи. Но я непонимаю как сделать через goto. Везде пишут что это ненужний и безполезный оперетор.
Просто зачастую в больших программах он затрудняет понимание кода. А ещё (правда точно не уверен) это замедляет выполнение программы, так как нарушается последовательность выполнения кода.

По заданию: Так и сказано "написать с использованием goto"? Без каких-либо указаний? Спрашиваю, потому как сходу непонятно (по крайней мере мне), где и зачем можно использовать goto в этой задаче...
silent_1991 вне форума Ответить с цитированием
Старый 25.04.2010, 21:37   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Без goto:
Код:
for (int i = 0; i < n; i++)
 printf("*");
printf("\n");
for (int i = 1; i < n - 1; i++)
 {
 printf("*");
 for (int j = 1; j < n - 1; j++)
  printf(" ");
 printf("*\n");
 }
for (int i = 0; i < n; i++)
 printf("*");
Цикл for с помощью goto:
Код:
for (int i = 0; i < n; i++)
{
//...
}
//...
{
int i = 0;
label:
 {
 //...
 }
i++;
if (i < n) goto label;
}
Совместить в ступке и тщательно перемешать!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.04.2010, 21:47   #6
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Может так?

Код:
#include <stdio.h>

int main()
{
    int n;
    int i, j;
    
    printf("Vvedite dlinu storoni kvadrata: ");
    scanf("%d", &n);
    
    if (n < 0) goto M7;
    if (n == 0) goto M7;
    if (n == 1) goto M6;
    if (n == 2) goto M5;
    
    i = 0;

    M1:
         printf("*");
         i++;
         if (i < n) goto M1;
    
    i = 0;
    
    M2:
        printf("\n");
        printf("*");
        j = 1;
        
        M3:
            printf(" ");
            j++;
            if (j < n - 1) goto M3;
        
        printf("*");
        i++;
        if (i < n - 2) goto M2;
    
    printf("\n");
    i = 0;
    
    M4:
        printf("*");
        i++;
        if (i < n) goto M4;
    
    goto M7;
    
    M5: printf("**\n*");
    M6: printf("*\n");
    M7: getch();
    return 0;
}

Последний раз редактировалось silent_1991; 25.04.2010 в 21:54.
silent_1991 вне форума Ответить с цитированием
Старый 25.04.2010, 23:49   #7
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

silent_1991 Да по заданию именно так и написано про goto.
В книжке нашол маленький пример по применению этого оператора и пытался както сделать.Но смог только это:
Код:
#include "stdafx.h"


int _tmain()
{
	int c=1;
start:
	if (c>6) goto finish;
	if (c%5 != 1) printf("*    *\n");
	else printf("******\n");
    ++c;
	goto start;
finish: putchar('\n');
	scanf("%d", &c);
	return 0;
}
volery вне форума Ответить с цитированием
Старый 25.04.2010, 23:50   #8
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Так я же вроде написал код...
silent_1991 вне форума Ответить с цитированием
Старый 25.04.2010, 23:57   #9
volery
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 18
По умолчанию

Error 2 error C3861: 'getch': identifier not found
getch это ненадо в include или Int както обозначать?
volery вне форума Ответить с цитированием
Старый 26.04.2010, 00:02   #10
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

поставь вместо этого system("pause");
silent_1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выводит на экран изображение (PASCAL) 0001 Фриланс 31 20.01.2010 18:13
Составить программу, которая создает и выводит на экран файл. STEELKUZNECOV Помощь студентам 1 30.05.2009 09:50
программа, которая выводит на экран одно из данных слов vados Паскаль, Turbo Pascal, PascalABC.NET 11 26.10.2007 23:47