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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2009, 22:30   #1
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
Вопрос Расшифровать цикл

Здравствуйте! Помогите,если кто может, понять вот этот кусок кода,что он делает,желательно чтоб было понятно.
Код:
	for(j = 0; j < 10; j++)
		if(sqrs[j][0] ==i)
			break;
из вот этого исходника:

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

int main()
{
	setlocale(0,"");
	int i,j;
	int sqrs[10][2] = {
		{1,1},
		{2,4},
		{3,9},
		{4,16},
		{5,25},
		{6,36},
		{7,49},
		{8,64},
		{9,81},
		{10,100} 
	};
    cout<<"Введите число от 1 до 10 - >  ";
	cin>>i;
	for(j = 0; j < 10; j++)
		if(sqrs[j][0] ==i)
			break;
	cout<<"Квадрат числа = "<<i<<" равен "<<sqrs[j][1];
	cin.ignore();
	cin.get();

}
j - это строки в данном коде, i - столбцы?

Последний раз редактировалось Golovastik; 02.09.2009 в 22:33.
Golovastik вне форума Ответить с цитированием
Старый 02.09.2009, 22:48   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Имеем массив, хранящий пары чисел (число - квадрат числа).
Вводим i. Далее в цикле по j смотрим, какое число ввел пользователь. Если нашли (sqrt[j][0]==i), то выходим. При этом в j остается индекс нужного числа. Вот по нему и выводим квадрат.

Эту же программу можно было реализовать и с помощью одномерного массива, где каждый элемент являлся бы квадратом своего индекса.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.09.2009, 23:01   #3
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Ещё один момент. В данном коде:
Код:
if(sqrs[j][0] ==i)
j - это строки , i - столбцы или наоборот?
И последний момент. Почему,если убрать в этой строке:
Код:
cout<<"Квадрат числа = "<<i<<" равен "<<sqrs[j][1];
единицу,перестанет считать квадрат числа, а будет выводить например при вводе числа 5, такой результат.
Квадрат числа 5 равен 5, что даёт единица, что будет,если вместо единицы подставить другое число?
Golovastik вне форума Ответить с цитированием
Старый 02.09.2009, 23:09   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Размерность массива 10 на 2. Нулевой столбец - это само число, а первый столбец - его квадрат.
Цитата:
j - это строки , i - столбцы или наоборот?
j это индекс по строкам, а i - это значение в нулевом столбце в j-й строке.
MaTBeu вне форума Ответить с цитированием
Старый 02.09.2009, 23:12   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Почему,если убрать в этой строке единицу,перестанет считать квадрат числа.....
Потому что единица указывает, что нужно взять второй элемент массива в j-й строке.
Цитата:
что будет,если вместо единицы подставить другое число?
Ничего хорошего. У вас массив из 2-х столбцов. Поэтому второй индекс может быть либо 0, либо 1. Если поставить другое число, то в результате получите мусор.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 02.09.2009 в 23:15.
Sazary вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расшифровать строку программы prikolist Общие вопросы C/C++ 5 21.03.2009 16:25
Помогите расшифровать оператор scibern Общие вопросы C/C++ 7 11.01.2009 01:34
Можно ли его расшифровать? DenCraft Фриланс 4 24.02.2008 01:19
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34