Форум программистов, компьютерный форум CyberForum.ru

Перевести из for в while - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 1.00
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 10:02     Перевести из for в while #1
Вот часть кода, с циклом for:
C++
1
2
3
for(x=1; x<=50; x++)
y+=1/(x*x);
printf("%f", y);
Нужно написать тот же код, при помощи while.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 10:02     Перевести из for в while
Посмотрите здесь:

Перевести на С. C++
C++ Перевести С++ --> C
Перевести из C++ на С. C++
перевести на С C++
C++ Перевести JS на C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
12.11.2013, 10:06     Перевести из for в while #2
Цитата Сообщение от Vlad_fractal Посмотреть сообщение
Вот часть кода, с циклом for:
C++
1
2
3
for(x=1; x<=50; x++)
y+=1/(x*x);
printf("%f", y);
Нужно написать тот же код, при помощи while.
Заранее спасибо.
while - тот же for, только инициализация счетчика выносится перед циклом
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 10:06     Перевести из for в while #3
C++
1
2
3
4
5
6
7
int x = 1;
while(x <= 50)
{
    y+=1/(x*x);
    x++;
}
printf("%f", y);
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 10:14  [ТС]     Перевести из for в while #4
Спасибо, разобрался.
Вот, проверьте, верен ли код, компилятора под рукой нету.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
main()
{
float z=0;
int i=1,j=1;
while(i<=50)
{i++;
while(j<=10)
{j++;
z+=1/(i+j);
}
}
cout<<z;
}
задание: Вычислить 1/(i + j), где i=1,2,3...50; j=1,2,3...10, c помощью вложенных циклов while
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 10:18     Перевести из for в while #5
Задание какое-то неоднозначное. Его можно понять десятком разных способов. Это точный текст задания?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
12.11.2013, 10:23     Перевести из for в while #6
Пыщь
C++
1
2
3
4
5
6
7
int x = 0;
double y = 0.;
 
while(x++<50)  
  y+=(double)1/(x*x);
 
printf("%f", y);
Добавлено через 2 минуты
Цитата Сообщение от Vlad_fractal Посмотреть сообщение
компилятора под рукой нету
Компилируется как часы.
Только не делает, что требовалось.
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 10:24  [ТС]     Перевести из for в while #7
Что нужно поменять?
фигурные скобки не так расставлены или в теле цикла ошибка?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
12.11.2013, 10:29     Перевести из for в while #8
Цитата Сообщение от Vlad_fractal Посмотреть сообщение
Вот, проверьте, верен ли код
Пыщь#2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
main()
{
float z=0;
int i=1,j=1;
while(i++<50)
  while(j<=10)
    z+=(double)1/(i+ ++j);
 
cout<<z;
cin.ignore();
return 0;
}
вариация
C++
1
2
3
4
5
float z=0;
int i=1,j=1;
while(i++<50)
  while(j++<=10)
    z+=(double)1/(i+j);
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 10:32     Перевести из for в while #9
А i и j разве не с 2х начнутся при таком подходе?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
12.11.2013, 10:33     Перевести из for в while #10
Rivory, именно так. Все как у ТС, только работает.
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 10:37  [ТС]     Перевести из for в while #11
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Пыщь#2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
main()
{
float z=0;
int i=1,j=1;
while(i++<50)
  while(j<=10)
    z+=(double)1/(i+ ++j);
 
cout<<z;
cin.ignore();
return 0;
}
вариация
C++
1
2
3
4
5
float z=0;
int i=1,j=1;
while(i++<50)
  while(j++<=10)
    z+=(double)1/(i+j);
И это работает? Что выводится на экран?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
12.11.2013, 10:57     Перевести из for в while #12
Цитата Сообщение от Vlad_fractal Посмотреть сообщение
Что выводится на экран?
Код
1.3468
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 10:58  [ТС]     Перевести из for в while #13
У меня 0 выводится на экран и всё...
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 10:59     Перевести из for в while #14
http://codepad.org/BzkLmdO2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 11:05     Перевести из for в while
Еще ссылки по теме:

C++ Перевести с с# на с++
Перевести в С++ C++

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

Или воспользуйтесь поиском по форуму:
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 11:05  [ТС]     Перевести из for в while #15
Короче, попробовал добавить double, перед выражением 1/(i+j), запустил, зависло всё нахрен. =D
Компилятор тут просто чудо. =)

Добавлено через 2 минуты
Так, разобрался, наконец.
Всё работает, результат как и у вас. Спасибо за внимание. =)
Yandex
Объявления
12.11.2013, 11:05     Перевести из for в while
Ответ Создать тему
Опции темы

Текущее время: 21:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru