Учебно-методическое пособие Тольятти тгу 2011 удк 004. 3(075) ббк 32. 97

Вид материалаУчебно-методическое пособие

Содержание


3.2Программирование циклов
Program Faktorial
F*=i++. 3. Программа с использованием цикла с предусловием на Си будет иметь вид: // Программа вычисления факториала
Program Faktorial
Var n: Integer; S,eps: Real
N! с использованием цикла for
Подобный материал:
1   2   3   4   5   6   7   8   9   10

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


Цель работы: ознакомиться с циклическими алгоритмами и операторами, реализующими эти алгоритмы. Освоить особенности применения каждого оператора. Составить программы с использованием всех операторов цикла.

Задание:

Выполните упражнения 1, 2. Перед выполнением упражнения изучите материал по темам из разделов 2.3.1 – 2.3.7 курса лекций.

Упражнение 1

Формулировка задания

Составить программу вычисления факториала целого положительного числа N! с использованием циклов с предусловием и постусловием.

Решение

1. Составим аналогичную программу на Паскале, используя цикл с предусловием:

Program Faktorial;

Var F:Longint; I,N:Integer;

Begin write(‘N=’);

ReadLn(N);

F:=1; i:=1;

While i<=N Do

Begin

F:=F*I;

I:=i+1

End;

Writeln(N,’!=’,F)

End.

2. В Си-программе в теле цикла также можно написать два оператора присваивания, объединив их фигурными скобками. Но используем более лаконичный способ записи, который более характерен для Си:

F=F*i++;

Этот же самый оператор можно было записать еще короче: F*=i++.

3. Программа с использованием цикла с предусловием на Си будет иметь вид:

// Программа вычисления факториала

#include

void main ()

{ long int F;

int i,N;

cout<<"N="; cin>>N;

F=i=1;

while(i<=N) F=F*i++;

cout<<"\n"<

}

4. При использовании цикла с постусловием программа на Паскале примет вид:

Program Faktorial;

Var F:Longint; I,N:Integer;

Begin write(‘N=’);

ReadLn(N);

F:=1; i:=1;

Repeat

F:=F*I;

I:=i+1

Until i>N;

Writeln(N,’!=’,F)

End.

4. При использовании цикла с постусловием программа на Си будет иметь вид:

// Программа вычисления факториала

#include

void main ()

{ long int F;

int i,N;

cout<<"N="; cin>>N;

F=i=1;

do F=F*i++;

while(i<=N);

cout<<"\n"<

}


Упражнение 2

Формулировка задания

Составить программу, которая вычисляет сумму гармонического ряда 1+1/2+1/3+… с заданной точностью ε.

Решение

1. Суммирование прекращается, когда очередное слагаемое становится меньше ε или целая переменная i достигает значения MaxInt. На Паскале фрагмент программы с использованием оператора цикла с предусловием будет выглядеть следующим образом.

S:=0;

I:=l;

While (l/I>=Eps) And (I

Begin

S:=S+1/I;

I:=1+1

End;

2. Эта же задача с использованием цикла с постусловием решается так:

S:=0;

I:=1;

Repeat

S:=S+1/I; I:=I+1

Until (1/I=MaxInt);

Исполнение цикла повторяется до того момента, когда логическое выражение станет равным true.

3. Для составления аналогичной программы в Си++ необходимо с помощью препроцессора подключить файл limits.h, содержащий определения предельных констант для целых типов данных. В частности, константа с именем INT_MAX равна максимальному значению типа int в данной реализации компилятора. Если для типа int используется двухбайтовое представление, то INT_MAX=32767. В этом же заголовочном файле определены и другие константы: INT_MIN=-32768; LONG_MAX=2147483647 и т.д.

4. Программа на Паскале будет иметь вид:

Var n: Integer; S,eps: Real;

Begin

Write(‘Точность:’);

ReadLn(eps);

n:=1; S:=0;

While(1/n>eps) And (n>MAXINT) Do

Begin S:=S+1/n;

n:=n+1

End;

WriteLn(‘Сумма=’,S)

End.

5. Программа на Си будет иметь вид:

// Сумма гармонического ряда

#include

#include

void main ()

{int n=1;

double S=0, eps;

cout<<"Точность:";

cin>>eps;

while(1.0/n>eps && n

S+=1./n++;

cout<<"\nСумма="<

}

Контрольные задания

1. При практическом использовании программы из упражнения 1 необходимо помнить, что факториал – очень быстро растущая функция, и поэтому при определённых значениях N выйдет из диапазона, соответствующего типу long int. Задав для переменной F тип unsigned long, можно сдвинуть эту границу, но этого может оказаться недостаточно. В качестве самостоятельного задания исследуйте предельные значения N для двух указанных типов переменной F.

2. Составить программу вычисления факториала целого положительного числа N! с использованием цикла for.

3. Используя циклы while, do-while и for, написать три варианта программы получения на экране таблицы синусов для значений аргумента в диапазоне от 0 до π/2 с заданным числом шагов.

4. Составить программу, вычисляющую и выводящую все члены числового ряда

1, , , …, ,

значение которых превышает 10-5.

5. Составить программу, печатающую в возрастающем порядке все трёхзначные числа, в десятичной записи которых нет одинаковых цифр.

6. Составить программу, печатающую все простые числа из диапазона [2, n] при целом n > 2.

7. Составить программу перевода целого десятичного числа в двоичную систему счисления.

8. Составить программу перевода целого десятичного числа в шестнадцатеричную систему счисления.

Заключение

В настоящее время трудно себе представить какую-либо область деятельности, где человек обходился бы без использования компьютеров, средств коммуникаций и соответствующих программ. Прикладная информатика объединила информационные и коммуникационные технологии с теми предметными областями, в которых эти технологии активно используются. Одной из этих предметных областей является экономика.

В процессе развития информатики как прикладной науки появились разные подходы к программированию. Дисциплина «Языки программирования» призвана содействовать знакомству студентов с различными парадигмами проектирования и разработки программного обеспечения. Она важна с той точки зрения, что, являясь составной частью подготовки экономиста, способствует развитию алгоритмического мышления, навыков программирования студентов.

Сфера применения новых информационных технологий постоянно развивается и всё глубже проникает во все процессы деятельности человека: от обеспечения простейших функций служебной переписки до системного анализа и поддержки сложных задач принятия решений. Кроме того, стремительное развитие компьютерных систем и средств коммуникаций, модернизация и смена поколений вычислительной техники, переход на новые операционные системы, обновление версий прикладных программ, средств и языков программирования предъявляет всё возрастающие требования к компьютерной грамотности специалистов. Поэтому сегодня, как никогда, актуальна подготовка специалистов, профессионально адаптированных к новым условиям работы в современной экономике, чей уровень подготовки напрямую зависит от профессионально значимых качеств, формируемых в процессе обучения в высшей школе.

В мире, где информация является самым ценным ресурсом, необходимы специалисты, способные качественно провести её анализ и отбор, оптимизировать в зависимости от требуемых критериев, выбрать методы хранения и трансляции. Выполнение всех вышеперечисленных операций лежит в основе деятельности экономиста, которая определяет состав качеств личности специалиста.

Данное учебно-методическое пособие позволяет ознакомиться с основными понятиями языков программирования и получить практические навыки работы в области программирования.


Тонких Артём Петрович


Языки программирования

Учебно-методическое пособие

для очного отделения


Формат 84х108/16.

Печать оперативная.

Тираж 50 экз.

Тольяттинский государственный университет

445667, г. Тольятти, ул. Белорусская, 14.