Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лабораторная работа - Программирование циклов. Вариант 13 - файл 1.doc


Лабораторная работа - Программирование циклов. Вариант 13
скачать (98 kb.)

Доступные файлы (1):

1.doc98kb.06.12.2011 11:25скачать

содержание

1.doc

Балтийский государственный технический университет

«Военмех» им. Д.Ф. Устинова

Кафедра И3

«Информационные системы и компьютерные технологии»

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

«Программирование циклов»

Вариант 13

Выполнил:

Студент Тихонов А.Ю.

Группа И383
Преподаватель:

Снижко Е.А.


Санкт-Петербург

2008

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

Цель работы – научится программировать циклические алгоритмы с помощью операторов for, while и do … while.

Постановка задачи

Написать три программы согласно индивидуальному варианту. Впервой программе смоделировать арифметический цикл с помощью оператора цикла for. Во второй программе использовать циклы while или do … while. В третьей программе вычислить бесконечную сумму с заданной точностью, используя рекуррентные зависимости.
Задание
Вариант 13

  1. Дано натуральное число N. Вычислить S=1+22+33+…+NN. Формулу возведения в степень не использовать.



  1. Определить, сколько цифр содержит данное натуральное число N.







Решение

Пример №1

Задание:

Дано натуральное число N. Вычислить S=1+22+33+…+NN. Формулу возведения в степень не использовать.

^ Код программы:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int n,i,k;

long s=0,a=0;

clrscr();

printf("BBeguTe N (N<16):");

scanf("%d",&n);

for (i=1; i<=n ; i++)

{ a=1;

for (k=1;k<=i;k++)

a*=i;

s+=a; }

printf("\n CyMMa=%ld",s);

getch();

}

Блок схема:






i=1; k=1; s=0; a=0;









s=s+a

i=i+1

Да

Нет



Нет



a=1









Да




a=a*i




k=k+1















Тестирование:


N

Делители

^ Должно быть

Получено

n=2

S=5

S=5

n=4

S=288

S=288

n=10

S=1815136725

S=1815136725

Вывод: программа работает правильно.

Пример №2

Задание:

Определить, сколько цифр содержит данное натуральное число N.

^ Блок схема:

Код программы:















Да

Нет







a=a/10




i++
















Код программы:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int i=0;

long int a;

clrscr();

printf("BBeDuTe 3Ha4eHue N He boJIbIIIe 10 CuMBoJIoB\n");

printf("N:");

scanf("%ld",&a);

while(a>0)

{ a=a/10;

i++; }

printf("koJI-Bo=%d",i);

getch();


Тестирование:

N

Делители

^ Должно быть

Получено

a=1


I=1

I=1

a=55555

I=5

I=5

a=5555555555

I=10

I=10

Вывод: программа работает правильно.

Пример №3

Задание:



Блок схема:







x; a=1; s=0; e=1E-4; n=1










Нет

Да




a=a*(-x2/n)






Нет

Да






s=s+a





n=n+1




a=a*(-x2/n)









Код программы:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

float x,s=0,a=1,e=1E-4;

int n=1;

clrscr();

printf("BBeDuTe X(-1<X<1):");

scanf("%f",&x);

if(x>-1 && x<1)

{

a*=(pow(-x,2)/n);

do

{ s+=a;

n++;

a*=(pow(-x,2)/n); }

while (fabs(a)>=e);

printf("\n CyMMa=%.4f",s);

}

else

printf("XPEH");

getch();

}

Тестирование:

N

Делители

Должно быть

Получено

x=0

0.0000

0.0000

x=0,5

0.2840

0.2840

x=-0,5

0.2840

0.2840

x=0,125

0.0157

0.0157

Вывод: программа работает правильно.


Скачать файл (98 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации