У вас вопросы?
У нас ответы:) SamZan.net

Тема- Простейшие программы Выполнил студент гр

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

Федеральное агентство по образованию Российской Федерации

Томский государственный университет систем управления  и радиоэлектроники (ТУСУР)

Кафедра   ИИТ

Отчет

По лабораторной работе №2

Тема: «Простейшие программы»

Выполнил студент гр.537

Шипина Анастасия Николаевна

Принял старший преподаватель кафедры КСУП

Потапова Евгения Михайловна

2008

Содержание

Введение…………………………………………………………………….….…..3

Основная часть…………………………………………………………………..…5

Первая задача…………………………………………………………………….....5

Вторая задача……………………………………………………………….……....7

Заключение…………………………………………………………………….…...9


Введение

Циклы

Алгоритм решения многих задач являются циклическими, то есть для получения результата определенная последовательность действий должна быть выполнена несколько раз. Последовательность повторяющихся действий называется циклом. Циклы обычно реализуются в программе с помощью инструкций for, while, repeat.

Инструкция for

Инструкция for используется, когда число повторений заранее известно. Формат записи:

for <счетчик> : = <начальное значение> to

<конечное значение> do

begin

{ тело цикла }

end;

Здесь <счетчик> - имя переменной, определяющей число повторений инструкций тела цикла; <начальное_значение> - выражение, определяющие начальное значение переменной счетчика циклов; <конечное_значение> - выражение, определяющее конечное значение переменной счетчика циклов.

В инструкции for после каждого выполнения инструкций тела цикла автоматически увеличивается счетчик циклов. Если вместо ключевого слова to написать downto, то счетчик будет не увеличиваться, а уменьшаться.

Инструкция while

Инструкция while используется в том случае, когда некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений заранее неизвестно и может быть определено только во время работы программы, то есть в процессе вычислений. Формат записи данной инструкции таков:

while <условие> do

begin

{последовательность инструкций}

end;

Здесь <условие> - выражение логического типа, определяющее условие выполнения цикла.

Инструкция while выполняется следующим образом.

  1.  Вычисляется значение выражения <условие>.
  2.  проверяется истинность условия:
    •  если условие является ложным (false), то инструкции, расположенные между словами begin и end, не выполняются и выполнение инструкций while завершается;
    •  если условие является истинным (true), выполняются инструкции цикла между словами begin и end и после этого вновь переходим к шагу 1.

Для завершения цикла необходимо, чтобы инструкции между словами begin и end влияли на значение выражения <условие> (изменяли значение переменных, входящих в это выражение).

Инструкция repeat

Инструкция repeat, как и инструкция while, используется в программе в том случае, когда необходимо организовать цикл, причем число повторений неизвестно и может быть определено во время работы программы, то есть определяется ходом вычислений. В общем виде инструкция repeat записывается следующим образом:

repeat

{инструкции}

until <условие>:

Здесь <условие> - выражение логического типа, определяющее условие завершения цикла.

Инструкция repeat выполняется следующим образом.

  1.  выполняется инструкции цикла, находящиеся между словами repeat и until.
  2.  вычисляется значение выражения <условие>:
    •  если условие ложно (false), выполняется переход к шагу 1;
    •  если условие истинно (true), выполнение цикла прекращается.

Главное отличие инструкции repeat от инструкции while состоит в том, что находящиеся между словами repeat и until инструкции цикла в любом случае выполняются по крайней мере один раз.

В инструкциях while и repeat необходимо обязательно следить за тем, чтобы инструкции цикла изменяли значение переменных, входящих в выражение <условие>, иначе произойдет так называемое зацикливание (бесконечное повторение инструкций).

Условные инструкции

В языке Паскаль условие – это выражение логического типа (boolean), которое может принимать одно из двух значений: истина (true) или ложь (false)/

Условная инструкция позволяет проверить заданное условие и в зависимости от результатов выполнить то или иное действие, то есть условная инструкция – средство ветвления вычислительного процесса. Формат записи:

if <условие> then <инструкция_1> else <инструкция_2>;

Здесь if, then, else – зарезервированные слова (если, то, иначе), <условие> - выражение логического типа, <инструкция_1> и <инструкция_2> - любые инструкции языка Паскаль.

Выполняется инструкция if следующим образом:

  1.  Вычисляется значение <условие>.
  2.  Если условие истинно (true), то выполняется инструкции, следующие за словом then и находящиеся между словами begin и end.
  3.  Иначе выполняются инструкции, следующие за словом else.

После инструкций, расположенных перед ключевым словом else, символ точки с запятой не ставится!

Если действие должно быть выполнено только при выполнение определенного условия и пропущено в случае его невыполнения, то инструкция if записывается без инструкции else:

if <условие> then <инструкция_1>


Основная часть

Первая задача

В задаче были взяты два типа данных real и integer. Для переменных y,x,z используется тип real, который определяет вещественные значения для этих переменных (y – присваивает значение косинуса, z – присваивает значение синуса, x – изменяется от 0 до 1 с шагом  0,1).

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

Напечатать таблицу значений функций sin(x) и cos(x) на отрезке [0,1] с шагом 0.1 в следующем виде (считать, что при печати на каждое вещественное число отводиться по 6 позиций строки):

   x           sin(x)      cos(x)

……....................................

0.0000   0.0000     1.0000

0.1000   0.0998     0.9950

………................................

1.0000   0.8415     0.5403

Словесное объяснение задачи:

  1.  очистка экрана;
  2.  присваиваем начальное значение x равное нулю;
  3.  выводим на экран заголовок таблицы;
  4.  с помощью цикла while вычисляем значения cos(x) и sin(x) с пошаговым значением 0,1;
  5.  с каждым шагом выводим на экран значения cos(x) и sin(x) при x;
  6.  завершаем программу.

uses crt;

var

y,x,z:real;

begin

clrscr;

x:=0;

writeln('   x      cos(x)     sin(x)');

writeln('---------------------------');

while x <=1 do

begin

y:=cos(x);

z:=sin(x);

writeln(x:2:4,'    ',y:2:4,'    ',z:2:5);

x:=x+0.1;

end;

end.

Вторая задача

В задаче были взяты два типа данных boolean и longint. Для переменных i,D,g,fi,fi1,fi2 используется тип longint, который определяет целые значения для этих переменных (fi – число Фибоначчи, D – количество символов в цифре , g – номер символа в цифре, i – порядковый номер цифры, fi,fi1,fi2 – числа Фибоначчи). Для переменной a используется тип boolean, который определяет лишь значения истинности.

В задаче используется цикл repeat, так как мы не знаем сколько раз будет выполнен цикл. Так же используется условия для выявления истинности.

Дано натуральное k. Напечатать k-ую цифру последовательности 1123581321... , в которой выписаны подряд все числа Фибонначи.

Словесное объяснение задачи:

  1.  очистка экрана;
  2.  вывод сообщения о том, что нам нужно ввести номер число;
  3.  с помощью цикла находим ряд Фибоначчи;
  4.  с помощью условия находим k – ую цифру последовательности;
  5.  выводим на экран эту цифру;
  6.  завершаем программу.


uses crt;

var

i,D,g,fi,fi1,fi2:longint;

l,k:longint;

a:boolean;

begin

clrscr;

write('k= ');

readln(k);

a:=true;

fi1:=1;

fi2:=1;

i:=2;

repeat

fi:=fi1+fi2;

D:=trunc(ln(fi)/ln(10)+1.0);

if (i+D)>=k then

begin

a:=false;

end;

else

begin

i:=i+D;

fi1:=fi2;

fi2:=fi;

end;

writeln('f=',fi);

until a=false;

g:=k-i;

l:= trunc(fi/exp((D-g)*ln(10))) mod 10;

writeln;

writeln('k-я цифра Фибоначчи',l);

end.


Заключение

В первой задаче необходимо было напечатать таблицу, решенная задача дает нам таблицу в виде:

  x         cos(x)        sin(x)

-------------------------------

0.0000    1.0000    0.0000

0.1000    0.9950    0.0998

0.2000    0.9801    0.1987

0.3000    0.9553    0.2955

0.4000    0.9211    0.3894

0.5000    0.8776    0.4794

0.6000    0.8253    0.5646

0.7000    0.7648    0.6442

0.8000    0.6967    0.7174

0.9000    0.6216    0.7833

1.0000    0.8415    0.5403

Протестировав вторую задачу, получаем: введенную пользователем число, ряд Фибоначчи и цифру последовательности, которую необходимо было найти:

k= 9

f=2

f=3

f=5

f=8

f=13

f=21

k-ая цифра Фибоначчи  - 2

k= 18

f=2

f=3

f=5

f=8

f=13

f=21

f=34

f=55

f=89

f=144

k-ая цифра Фибоначчи - 4


да

ет

конец

Печатаем на экран значения y,z

Ввычисляем значения

y:=cos(x);

z:=sin(x);

x<=1

x: =0;

Ввод чисел

начало




1. Этот метод основан на изображении гармонических величин комплексными числами Комплексным числом называе
2. Внутренняя и внешняя политика Франции в период Консульства 1799-1804 гг
3. Столетняя война (1337-1453)
4. Социальный Институт г
5. тема ее характеристика
6. тематического формализма квантовой механики.
7. Школа в годы войн
8. Химические волокна
9. экологических катастрофах конца ХХ века начали сбываться но не на постиндустриальном Западе а в первую оче
10. Критомикенская эпохаобщая хка