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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.03.2009, 12:11   #1
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию про вложеные циклы) кое что непонял

привет ребята
вот делал упражнение в книге Стивена Прата гл 5 упр 9
он пишет пример должен выглядить так
введитен кол-во строк //5
. . . . *
. . . * *
. . * * *
. * * * *
* * * * *

вот мой код
Код:
int sr;
cin>> sr;
int st=sr;
char a='*'; char b='.';
for(i=4;i<sr;i++){
for(int j=1;j<st;j++)
cout<<b;
for(int e=4;e<st;e++)
cout<<a;
cout<<endl;}
for(i=4;i<sr;i++){
for(int j=2;j<st;j++)
cout<<b;
for(int e=3;e<st;e++)
cout<<a;
cout<<endl;}
for(i=4;i<sr;i++){
for(int j=3;j<st;j++)
cout<<b;
for(int e=2;e<st;e++)
cout<<a;
cout<<endl;}
for(i=4;i<sr;i++){
for(int j=4;j<st;j++)
cout<<b;
for(int e=1;e<st;e++)
cout<<a;
cout<<endl;}
for(i=4;i<sr;i++){
for(int j=5;j<st;j++)
cout<<b;
for(int e=0;e<st;e++)
cout<<a;
cout<<endl;}
вот как на примере у меня получилось)
тока можно ли сделать так чтобы я пример вводил любое число пример 8
и оно получалось так ?
. . . . . . . *
. . . . . . * *
. . . . . * * *
. . . . * * * *
. . . * * * * *
. . * * * * * *
. * * * * * * *
* * * * * * * *
вобщем в таком духе

Модератор: тег CODE
в программировании нубик

Последний раз редактировалось MaTBeu; 11.03.2009 в 19:15.
MeGaTpoH вне форума
Старый 11.03.2009, 12:39   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Слишком громоздкий у вас код. Вы не правильно подходите к решению задачи.
Вот код для любого числа:
Код:
#include <iostream>
using namespace std;

int main()
{
    int count;
    cout << "Enter number: ";
    cin >> count;

    cout << endl << endl;
    for(int i=1;i<=count;i++)
    {
        int j;
        for(j=0;j<count-i;j++)
            cout << ".";
        for(;j<count;j++)
            cout << "*";
        cout << endl;
    }

    return 0;
}
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 11.03.2009, 13:58   #3
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию

хм шас проверю) чето-то я перемудрил со своим кодом)
в программировании нубик
MeGaTpoH вне форума
Старый 11.03.2009, 15:45   #4
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию

Код:
#include <iostream>
using namespace std;

int main()
{
    int count;
    cout << "Enter number: ";
    cin >> count;

    cout << endl << endl;
    for(int i=1;i<=count;i++)
    {
        int j;
        for(j=0;j<count-i;j++) //тут занубил перемен j(3) вели 5
            cout << ".";
        for(;j<count;j++) //переходит сюда j(3)
            cout << "*";
        cout << endl;
    }

    return 0;
}
а я думал что значение переменых не может передаваться из цикла в другой цикл=))

Модератор: тег CODE + русский выучи
в программировании нубик

Последний раз редактировалось MaTBeu; 11.03.2009 в 19:17.
MeGaTpoH вне форума
Старый 11.03.2009, 20:19   #5
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от MeGaTpoH Посмотреть сообщение
а я думал что значение переменых не может передаваться из цикла в другой цикл=))
У переменных есть область видимости. Ее значение может быть использовано в пределах этой области, и не важно будут ли там циклы, условия, функции или что-то еще
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 11.03.2009, 21:48   #6
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Вот если нужно. Мне как-то задавали сделать, вот отсался проект. Выводит все такие треугольники. Вводишь число и выводятся 4 разных треугольника такой высоты. Один из них, вроде третий, как раз твой случай!

Код:
#include <stdio.h>
int main(){
	int a,i,j,k;
	scanf("%d",&a);

	for(i=1;i<=a;i++){
		printf("\n");
		for(j=i;j<i+i;j++){
			printf("*");
		}
	}

	i=0;
	j=0;
	printf("\n");

	for(i=a;i>0;i-=1){
		printf("\n");
		for(j=i;j<i+i;j++){
			printf("*");
		}
	}

	i=0;
	j=0;
	k=0;
	printf("\n");

	for(i=a;i>0;i-=1){
		printf("\n");
		for(k=1;k<a+1-i;k++){
			printf(" ");
		}
		for(j=i;j<i+i;j++){
			printf("*");
		}
	}

	i=0;
	j=0;
	k=0;
	printf("\n");

	for(i=1;i<=a;i++){
		printf("\n");
		for(k=a-i;k>0;k-=1){
			printf(" ");
		}
		for(j=i;j<i+i;j++){
			printf("*");
		}
	}
	printf("\n");
}
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.

Последний раз редактировалось MAKEDON; 11.03.2009 в 22:03. Причина: Орфография
MAKEDON вне форума
Старый 12.03.2009, 01:55   #7
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию

у меня в книге мало про двумерные циклы) всего 1 пример)

а вот есть динамические массивы,
а есть ли двумерные динамические массивы?
в программировании нубик
MeGaTpoH вне форума
Старый 12.03.2009, 02:10   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а есть ли двумерные динамические массивы?
Конечно есть! )
Код:
int **mas, i;
mas = new int*[5];
for(i=0;i<5;i++)
 mas[i] = new int[7];
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 12.03.2009, 05:22   #9
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию

Код:
int **mas, i;
mas = new int*[5];
for(i=0;i<5;i++)
 mas[i] = new int[7];
чето немного не понял)
вот просто дм массив
int *psome=new int [6];
delete [] psome;

а что двумернный дм массив пишется тока с циклом?
в программировании нубик

Последний раз редактировалось MaTBeu; 12.03.2009 в 20:00.
MeGaTpoH вне форума
Старый 12.03.2009, 06:09   #10
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от MeGaTpoH Посмотреть сообщение
а что двумерный дм массив пишется тока с циклом?
Да.!
Вот код для примера.
P.S. про тег "code" не забывай!
Код:
#include <iostream>
using namespace std;

int **arrCreate(const int row, const int col)
{
	if((row > 0))
	{
		int **arr = new int*[row];

		for(int i = 0; i < row; ++i)
			arr[i] = new int[col];

		return arr;
	}else
		return 0;
}

void arrFree(int **arr)
{
	if(arr != 0)
	{
		int lenrow = static_cast<int>(_msize(arr)/sizeof(int));

		for(int i = 0; i < lenrow; ++i)
			delete[] arr[i];

		delete[] arr;
	}
	//в принципе здесь можно обнулить массив(указатель) 
	//...
}

void arrInput(int **arr)
{
	if(arr != 0)
	{
		int lenrow  = static_cast<int>(_msize(arr)/sizeof(int));
		int lencol  = static_cast<int>(_msize(arr[0])/sizeof(int));

		for(int i = 0; i < lenrow; ++i)
			for(int j = 0; j < lencol; ++j)
			{
				cout<<"arr["<<i<<"]"<<"["<<j<<"] = ";
				cin>>arr[i][j];
			}
	}
}

void arrOut(int **arr)
{
	if(arr != 0)
	{
		int lenrow  = static_cast<int>(_msize(arr)/sizeof(int));
		int lencol  = static_cast<int>(_msize(arr[0])/sizeof(int));
		for(int i = 0; i < lenrow; ++i)
		{
			cout<<"[ ";

			for(int j = 0; j < lencol; ++j)
				cout<<arr[i][j]<<" ";

			cout<<"]"<<endl;
		}
	}
} 

int main()
{
	int **arr = arrCreate(2,2);

	arrInput(arr);
	arrOut(arr);
	arrFree(arr);

	system ("PAUSE");
	return 0;
}
Блин вам вообще на счёт этого вопроса нужно отдельную тему создавать
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 12.03.2009 в 06:38. Причина: Добавил кусок текста...
ISergeyN вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кое что не получается в курсовой "товары на складе" tiger Паскаль, Turbo Pascal, PascalABC.NET 3 03.04.2008 18:01
Взаимодействие с виндой и еще кое-что Manitu Помощь студентам 5 25.03.2008 09:28
База Access на тему муз.картотека, надо кое что исправить NEED HELP!!! Tanzilit Microsoft Office Access 5 08.01.2008 01:08
разъесните мне кое что! Veltis Общие вопросы Delphi 4 25.06.2007 21:21
кое-что о MainMenu itisiam Компоненты Delphi 2 25.05.2007 21:47