ВКР. Учебно-методическое пособие Тольятти тгу 2011 удк 004 3(075) ббк. Учебнометодическое пособие по дисциплине Языки программирования предназначено для студентов очной формы обучения и содержит конспект лекций по ключевым темам курса и практикум
Скачать 0.88 Mb.
|
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 <iostream.h> void main () { long int F; int i,N; cout<<"N="; cin>>N; F=i=1; while(i<=N) F=F*i++; cout<<"\n"<<N<<"!="<<F; } 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 <iostream.h> 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 Исполнение цикла повторяется до того момента, когда логическое выражение станет равным 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 <iostream.h> #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. |