Ребята, что-то не получается... Может вы мне все-таки поможете... Мне уже скоро работу сдать надо . Вобщем, вот условие задачи:
Вычислить сумму первых N элементов рада: 1 + 1*3/1*4 + 1*3*5/1*4*5 + 1*3*5*7/1*4*7*10 Вычисления проводить до тех пор, пока модуль очередного элемента будет больше <E> (эпсилон)
А вот сам код программы, которую я написал:
| Код | # include <stdio.h> # include <math.h> #include <conio.h> # include <graphics.h>
void main (void) { float epsilon; /*chislo epsilon, kotoroe nado vvesti*/ float summa_elemntov; /*obshaya symma elementov ryada*/ float element; /*znachenie elementa ryada*/ int chislitel_elementa; /*chislitel elementa ryada*/ int znamenatel_elementa; /*znamenatel elementa ryada*/ summa_elemntov=0; /*provodim obnylenie obshei symmy elementov ryada*/ element=1; /*ystanavlivaem tekyshee znachenie dlya elementa ryada */ chislitel_elementa=1; /*ystanavlivaem tekyshee znachenie dlya chislitelya elementa ryada*/ znamenatel_elementa=1; /*ystanavlivaem tekyshee znachenie dlya znamenatelya elementa ryada*/ /*vypolnyaem graficheskoe predstovlenie programmy*/
Здесь я рисую таблицу, но здесь понятно, ее приводить не буду.... Затем сама программа:
if (epsilon > 0 && epsilon < 1) { while (element > epsilon) { summa_elemntov=summa_elemntov+element; chislitel_elementa*=(chislitel_elementa+2); znamenatel_elementa*=(znamenatel_elementa+3); element=(chislitel_elementa*1.0)/znamenatel_elementa; } gotoxy (10,23); textcolor (4); cprintf ("- Symma pervyx <N> elementov ryada ravna %.2f \a", summa_elemntov); textcolor (7); gotoxy (10,25); cprintf ("Dlya zaversheniya nazhmite klavishy <ENTER>"); }
/*esli yslovie ne vypolnyaetsya, to vyvoditsa soobshenie ob oshibke*/ else {.... тут я делаю воспроизвожу позановому таблицу и .... if (epsilon >= 1 || epsilon <= 0) { textcolor (8); gotoxy (10,23); cprintf ("Izvenite, no vy opyat vveli chislo <E> nepravilno!\a"); textcolor (2); gotoxy (10,24); cprintf ("Daetsya eshe odna popytka..."); textcolor (8); gotoxy (10,25); cprintf ("Dlya vvoda chisla nazhmite <ENTER>"); getch (); textbackground (7); clrscr; и опять произвожу таблицу и так еще два раза....
|
Ограничение на число эпсилон я сделал через оператор if и else. А надо через do-while . Вобщем, например, вводим число эпсилон, если оно удовлетворяет условию, то считаем ряд и на выход. Если же не удовлетворяет, то выводиться сообщение об ошибке с просьбой повторить число эпсилон еще раз, и так в общей сложности три раза будут появляться ошибки, пока пользователь не введет правильно число эпсилон, тогда, как вы понимаете, происходит подсчет и на выход. Вобщем, я на вас очень надеюсь, помогите пожалуйста, это, наверно не трудно для вас. Я только начал узучать Си... |