Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
//Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
#1

теория - C++

30.09.2010, 13:55. Просмотров 1879. Ответов 32
Метки нет (Все метки)

Добрый день!!! срочно нужины 2 примера :
1)чтобы нельзя было заменить цыкл for на while
и еще один пример когда есть цыкл while но его нельзя заменить на for?? помогите плиз сижу на экзамене
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2010, 13:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос теория (C++):

теория - C++
дана тема организация доступа, что мне в ней расписывать не знаю, подскажите кто знает буду очень благодарен

теория - C++
народ мож кто знает где можно найти теорию или что-нибудь на подобии пособия,там где описывается про функции,про их применения и т.д. и...

Теория - C++
Добрый день! Появились парa вопросов по теории. 1) Есть ли какая то разница между обращением p-> и (*p). ? Если есть - то желательно...

Теория по С++ - C++
Здравствуйте. Необходимо ответить на вопрос, что такое идентификаторы, пунктуаторы, ключевые слова и операторы. Я искал в гугле по...

Теория - C++
Поясните мне, есл можете, что значит Описание используемых структур данных. в графе. P S оформляю отчет по курсовой

теория - C++
какя разница между кодами ? if(a>b) a++; b++; и if(a>b) a++;

32
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 15:03 #16
LineStown,
Ну из того, что они по-разному выполняются, следует то, что это разные циклы, просто и в том, и в том используется слово while... Например в Pascal есть цикл while (аналог, как не трудно догадаться, цикла while в Си), а есть repeat...until (аналог цикла do...while в Си).
1
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
30.09.2010, 15:07 #17
Цитата Сообщение от silent_1991 Посмотреть сообщение
LineStown,
Ну из того, что они по-разному выполняются, следует то, что это разные циклы, просто и в том, и в том используется слово while... Например в Pascal есть цикл while (аналог, как не трудно догадаться, цикла while в Си), а есть repeat...until (аналог цикла do...while в Си).
Вот для этого я и указал в скобках примечание.
1
//Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
30.09.2010, 15:15  [ТС] #18
он сказал что тупанул, ошибся типа таких примеров не существует. но экзамен закрыл .. я в шоке..
ладно ухожу Всем огромное спасибо
1
ooki2day
12 / 12 / 0
Регистрация: 23.10.2008
Сообщений: 281
30.09.2010, 16:45 #19
сдавал экз я,Саня дома сидел у компа)))спасибо всем кто помогал.раскрываю тему!!!!
задание:привести пример того, что цикл for( ; ; ){} нельзя заменить циклом while( ){} (в смысле,что при одинаковых действиях один будет выполняться,а другой нет). и наоборот. голову ломал, он дал подсказку break и continue.
с континюном проблем не возникло.вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
for(i=0;i<1;i++)
{
   if(i==0)
      continue;
}
}
 
int main()
{
   i=0;
   while(i<1)
   {
      if(i==0)
         continue;
      i++;
   }
}
как видите, while зациклен, а из for'a вышел без проблем.потом я его достал тем,что через break это сделать невозможно.он подумал минуту,две...с задумчивым видом сказал "да,что-то я ошибся.давайте зачетку".
я не мог выйти из аудитории без матов!!!!!!
0
ForEveR
В астрале
Эксперт С++
7988 / 4747 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.09.2010, 17:13 #20
Собственно... Не знаю в тему-ли я? Но...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    int i=0;
while(++i<3)
{
    if(i>1)
       break;
    std::cout<<i<<'\n';
}
 i=0;
for(int i=0; i<3; ++i)
{
    if(i>1)
       break;
    std::cout<<i<<'\n';
}
return 0;
}
0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 17:30 #21
ooki2day,
Разве пример корректен? Если не ошибаюсь, в форе увеличивается счётчик и проверяется условие не в конце нынешней итерации, а в начале новой (за исключением первой итерации).
Таким образом, эквивалентом приведённого вами for будет:

C
1
2
3
4
5
6
7
8
9
int i = -1;
 
while (i < 1)
{
    i++;
    
    if (i == 0)
        continue;
}
И он прекрасно отработает.
0
ForEveR
В астрале
Эксперт С++
7988 / 4747 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.09.2010, 17:31 #22
silent_1991, Да согласен. Но мне кажется это все же отличие while от for. Хотя могу ошибаться.
0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 17:34 #23
Lavroff,
В вашем примере, кстати, тоже надо было принициализировать i перед while минус единицей...
0
ForEveR
В астрале
Эксперт С++
7988 / 4747 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.09.2010, 17:36 #24
silent_1991, А зачем -1? Чем ноль хуже в данном случае?
Ну чтобы верно отработало - да. Но это ведь не цель)
0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 17:38 #25
Lavroff,
Ну хотя да, в данном случае не важно... Ибо условие i > 1; Но сами циклы не эквивалентны, ибо в while i на первой же итерации станет равняться 1, а в for i всё же начнёт с 0...
0
ForEveR
В астрале
Эксперт С++
7988 / 4747 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
30.09.2010, 17:43 #26
silent_1991, Насчет этого согласен.
0
M128K145
Эксперт С++
8308 / 3528 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
30.09.2010, 18:20 #27
Цитата Сообщение от silent_1991 Посмотреть сообщение
ooki2day,
Разве пример корректен?
Конечно не корректен. Там допущена очень грубая ошибка, о которой вы, собственно, и написали.

ooki2day, как может такой "преподаватель" принимать экзамен?
0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 18:22 #28
M128K145,
Видимо, так же, как и задавать на этом самом экзамене подобные вопросы...
0
ooki2day
12 / 12 / 0
Регистрация: 23.10.2008
Сообщений: 281
30.09.2010, 19:25 #29
M128K145, что за грубая ошибка?я имел в виду то, что перед i++ будет тело цикла.допустим,массив считать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i=5;
while(i<10)
{
   mas1[i]=mas2[i];
   if(i==8)
      continue;
   i++;
}
 
for(i=5;i<10;i++)
{
   mas1[i]=mas2[i];
   if(i==8)
      continue;
}
допустим,надо этот элемент исключить,а остальные записать.разве for не запишет все,кроме одного?
0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
30.09.2010, 19:31 #30
ooki2day,
Прочитайте мой пост №21 в этой теме.
1
30.09.2010, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 19:31
Привет! Вот еще темы с ответами:

Теория по С++ - C++
Помогите с вопросами по экзамену по файлам 10) Беззнаковые типы данных. 23) Объявление функции. 24) Определение функции. ...

Теория по С++ - C++
Помогите ответить на вопросы, очень нужно к экзамену. На что-то ответила, но не знаю правильно ли( 1. Что находится в списке...

Теория графики - C++
Вобщем в кратце. Кто может подсказать литературу по теории графики? Если проще построение маленькой 2D игры и разные поведения главного...

Массивы теория - C++
Дано: В массиве двухбайтовых чисел, содержащем N элементов найти минимальное и максимальное значение и поменять их местами. Можно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.