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

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

Войти
Регистрация
Восстановить пароль
 
St1morol
Заблокирован
#1

do...while - C++

27.11.2011, 19:52. Просмотров 727. Ответов 7
Метки нет (Все метки)

Дана последовательность:Название: 4.jpg
Просмотров: 56

Размер: 2.8 Кб. Составить программу c использованием цикла while, выводящую на экран значение и номер члена последовательности, меньшего 0,1.
Тест: n=4, p(n)=0,0625. Использовать цикл do...while.
язык Cи
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
27.11.2011, 20:20     do...while #2
Можно попробовать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <conio.h>
 
void main()
{
   int n=0; // номер элемента последовательности
   
   do
  {
      cout << "\n Элемент последовательности с номером n=" <<n <<" равен p(n)=" << 1/(n*n);
           //вывели номер и значение элемента последовательности
      n++; // увеличили номер, чтобы получить следующий элемент последовательности
  }
   while( 1/(n*n) < 0.1);
}
Добавлено через 4 минуты
// Вместо cout можно использовать printf(), тогда нужно подключить вместо <iostream.h> библиотеку <stdio.h>
// Эта программа для последовательности 1/2, 1/4, 1/9, ... , 1/(n*n)
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.11.2011, 20:32     do...while #3
Вывести на экран значение и номер члена последовательности, меньшего 0,1
St1morol
Заблокирован
27.11.2011, 20:44  [ТС]     do...while #4
go, мне надо язык си а не с++

Добавлено через 3 минуты
alenka-46, ps мне надо 1/2;2/4;...;n/(2*n)...

Добавлено через 4 минуты
alenka-46, и желательно сразу через printf а то боюсь сам не разберусь
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.11.2011, 20:51     do...while #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int n,i=1;
float res;
scanf ("%d", &n);
res=n;
 
if (n)
do
{
         i*=2;
} while (--n);
 
printf ("%f", res/i);
system ("pause");
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
27.11.2011, 22:17     do...while #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
 
void main()
{
   clrscr(); // очистка экрана
   int n=1; // номер элемента последовательности
   float  elem=1/2; // значение элемента последовательности
   
   do
  {
      printf("\n Элемент последовательности с номером n = %d равен p(n) = %f" ,n, elem);
           //вывели номер и значение элемента последовательности
      elem=elem*n/(2*(n-1)) ; // вычислили следующий элемент
      n++; // увеличили номер, чтобы получить следующий элемент последовательности
  }
   while( elem > 0.1);
}
Добавлено через 11 минут
Вместо elem*n/(2*(n-1)) в строке 14 можно вставить любую другую формулу и получится другая последовательность

для этой последовательности:
если n=2, то elem считается так 1/2*2/(2*(2-1))=1/2

если n=3, то elem считается так 1/2*3/(2*(3-1))=3/8

Так что вроде формула правильная, но программу всё равно стоит проверить на ошибки
SnuffeR=1
Заблокирован
28.11.2011, 06:43     do...while #7
не робит
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
28.11.2011, 14:41     do...while #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
 
void main()
{
   clrscr();            // очистка экрана
   int n=1;            // номер элемента последовательности
   float  elem=0.5; // значение элемента последовательности
   
   do
  {
      printf("\n\n   n = %d     p(n) = %f" ,n, elem);
           //вывели номер и значение элемента последовательности
       n++; // увеличили номер
       elem=elem*n/(2*(n-1)) ; // вычислили следующий элемент
     
  }
   while( elem >=  0.1);
 
   printf("\n \n  Программа завершила свою работу, нажмите  <Enter> ");
   getchar();
}
Результат работы программы:

n=1 p(n)=0.500000

n=2 p(n)=0.500000

n=3 p(n)=0.375000

n=4 p(n)=0.250000

n=5 p(n)=0.156250
Yandex
Объявления
28.11.2011, 14:41     do...while
Ответ Создать тему
Опции темы

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