Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Здравствуйте! Помогите,если кто может, понять вот этот кусок кода,что он делает,желательно чтоб было понятно.
Код:
	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,784
Репутация: 999
По умолчанию

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

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

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

Ещё один момент. В данном коде:
Код:
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,623
Репутация: 1148
По умолчанию

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:27.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.