Простейшие конструкции языка С

Страницы работы

Содержание работы

Министерство образования и науки РФ

ГОУВПО «Комсомольский-на-Амуре государственный технический университет»

Кафедра МОП ЭВМ

Лабораторная работа №1

«Простейшие конструкции языка С»

                                                               Выполнил: Рогозин В.А.

Группа: 4ВС-1

Проверил: Могильников

Вариант 18

Комсомольск-на-Амуре

2006

Задание:

Дано натуральное число . Вычислить сумму всех чисел Фибоначчи, которые не превышают N. Числа Фибоначчи образуются по закону ,   ,   .

Алгоритм:

После ввода с клавиатуры программа проверяет действительно ли введённое число больше 10, если это не так, то программа предлагает ввести данные повторно. Затем программа выделяет память для будущих элементов массива используя функцию calloc. Затем идёт цикл основных вычислений, условием выхода из которого является условие «вычисленное число Фибоначчи не превышает введённое число». В теле цикла сперва первому и второму числу приравнивается значение 1, затем вычисляются остальные числа по формуле  , после каждого вычисления предыдущая сумма чисел Фибоначчи сперва записывается в др. переменную, а потом плюсуется к новому числу, до тех пор, пока не выполняется условие выхода из цикла Do While. После выхода из цикла идёт проверка значения последнего вычисленного числа, если значение переменной меньше или равно введённому числу, то на монитор выводиться это число, иначе выводиться предыдущая сумма, записанная в др. переменной.

Блок-схема: знак завершения: началоБлок-схема:

Блок-схема: данные: N
 


                                                                             Да

 


*(f+k)=1

 

*(f+k)=((*(f+(k-2)))+(*(f+(k-1))))

 
Блок-схема: решение: k=0|k=1

i=s s=s+(*(f+k))

 

k++

 
Блок-схема: данные: *(f+k)Блок-схема: решение: *(f+k)<NНет                   Да

Да

Блок-схема: решение: *(f+(k-1))<N
 


Да

 


Да

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

void main(void)

{

clrscr();

int N=0, k=0, *f,s=0, i;

//------------ ввод числа N -----------while(N<=10)

{

cout<<"число должно быть больше 10: ";

cin>>N;

}

//------------------------------------f=(int*)calloc(100,sizeof(int)); // выделен памяти

do

{

if((k==0)|(k==1)) //вычисление чисел Фибоначчи

*(f+k)=1;

else

*(f+k)=((*(f+(k-2)))+(*(f+(k-1))));

i=s; //запись предыдущей суммы

s=s+(*(f+k)); // вычисление суммы

if((*(f+k))<N)

cout<< (*(f+k)) <<endl;

k++;

}while(((*(f+(k-1)))<N));

if((*(f+(k-1)))>N)

s=i;

cout<<"сумма="<<s;

getch();

}

Литература:

Не использовалась

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
45 Kb
Скачали:
0