Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Выражения и условный оператор IF. Операторы циклов. Массивы и подпрограммы

Тип Реферат
Предмет Информатика и программирование
Просмотров
825
Размер файла
40 б
Поделиться

Ознакомительный фрагмент работы:

Выражения и условный оператор IF. Операторы циклов. Массивы и подпрограммы

Томский межвузовский центр дистанционного образования

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

Кафедра экономика

Контрольная работа №1

по дисциплине «информатика»

автор пособия Тимченко С.В., Сметанин С.И.

вариант №1

Выполнила

Студентка гр.З-828-Б

Специальности 080105

Афонина Юлия Владимировна

Г. Нефтеюганск

2009 г.


Задание №1. «Выражения и условный оператор IF»

1. Вычислить значение функции f в точке x.

Решение:

Program prog1;

Var

f,x: real;

Begin

writeln('Расчет значения функции в заданной точке');

write(' Введите число x: ');

readln(x);

if x<0 then f:=SQR(x+3) else

begin

if x<4 then f:=sin(x-2)/(SQR(x)-16)

else f:=SQRT(x-4);

end;

writeln(' Значение f(',x:0:8,') = ',f:0:8);

readln;

end.

Тестирование программы:

1. X=-1 (выполнено первое условие, x<0):

Расчет значения функции в заданной точке

Введите число x: -1

Значение f(-1.00000000) = 4.00000000

2. X=3 (выполнено второе условие, 0<=x<4):

Расчет значения функции в заданной точке

Введите число x: 3

Значение f(3.00000000) = -0.12021014

3. X=5 (выполнено третье условие, x>=4):

Расчет значения функции в заданной точке

Введите число x: 5

Значение f(5.00000000) = 1.00000000

Программа дает верные результаты, отладка завершена.

2. Какие типы использовались при описании переменных в программе?

При описании данной программы использовались переменные вещественного типа.

3. Чем определяется выбор того, или иного типа?

Типом данных называется множество допустимых значений этих данных, а также совокупность операций над ними. Типы делятся на следующие группы: простые, структурированные, указатели, процедурные, объекты. Есть стандартные (предопределенные) и определяемые программистами в разделе, начинающемся со слова Type. Простые типы определяют упорядоченное множество значений элементов и делятся на вещественные, целые, символьный, логический, перечисляемый и тип-диапазон. Вещественные типы определяют дробные числа и представлены 5 стандартными типами: real, single, double, extended, comp. Целые типы определяют целые числа и представлены 5 стандартными типами: integer, longint, shortint, byte, word, стандартный символьный тип char определяет полный набор допустимых символов. Стандартный логический тип Boolean представляет собой тип данных, каждый элемент которого может принимать 1 из 2-х значений: False (ложь), True (правда). Перечисляемый тип не является стандартным и определяется набором идентификаторов, к которым может совпадать значение элемента данных.

В данной программе выбор типа realдля переменной xобусловлен тем, что функции sqrt(x),sin(x) иsqr(x) допускают аргументы такого типа. А так как значение функции sin(x) имеет тип real для аргумента типа real, то для переменной f необходимо также выбрать тип real.

Задание №2. «Операторы циклов»

1. Задание:

Вычислить сумму s значений функции f в точках xi которые берутся с заданного интервала [a;b] через равные отрезки длиной h. Длина отрезка рассчитывается по формуле . Здесь i=1,2,3…n – номер точки; n – задаваемое количество точек; a – начло и b – конец интервала изменения x. Вывести на экран результаты вычислений, полученные при помощи следующих циклов:

- Whileлогическое_выражениеDoтело_цикла;

- Repeatтело_циклаUntilлогическое_выражение;

- Forпараметр:=мин._значениеToмакс. Doтело_цикла;

- Forпараметр:=макс._значениеDownToмин. Doтело_цикла;

При выполнении задания сначала в программе требуется задать значение исходных данных: границы интервала a и b, количество точек n. Это можно сделать, описав соответствующие константы в разделе объявления констант Const.

Затем при помощи операторов циклов, записываемых в программе последовательно друг за другом в любом порядке следования, необходимо в каждом из циклов вычислить сумму s и вывести ее на экран, т.е. в одной программе решить задачу 4-мя способами. Таким образом, в результате выполнения программе на экране должны быть 4 значения s, совпадающие между собой.

Решение:

Program prog2;

const

a=3;

b=10;

n=10;

var

s,x,h:real;

i:integer;

begin

writeln('Вычисление суммы значений функции');

h:=(b-a)/(n-1);

writeln(' a = ',a);

writeln(' b = ',b);

writeln(' n = ',n);

writeln(' h = ',h:0:8);

writeln;

{цикл "while"}

writeln('1. Цикл "while"');

x:=a;

s:=0;

i:=1;

while i<=10 do

begin

s:=s+sin(x+3)/exp(2/5*ln(x+3));

x:=x+h;

i:=i+1;

end;

write(' Значение s: ');

writeln(s:0:8);

{цикл "repeat"}

writeln('2. Цикл "repeat"');

x:=a;

s:=0;

i:=1;

repeat

s:=s+sin(x+3)/exp(2/5*ln(x+3));

x:=x+h;

i:=i+1;

until i>10;

write(' Значение s: ');

writeln(s:0:8);

{цикл "for ... to ... do"}

writeln('3. Цикл "for ... to ... do"');

x:=a;

s:=0;

for i:=1 to 10 do

begin

s:=s+sin(x+3)/exp(2/5*ln(x+3));

x:=x+h;

end;

write(' Значение s: ');

writeln(s:0:8);

{цикл "for ... downto ... do"}

writeln('4. Цикл "for ... downto ... do"');

x:=a;

s:=0;

for i:=10 downto 1 do

begin

s:=s+sin(x+3)/exp(2/5*ln(x+3));

x:=x+h;

end;

write(' Значение s: ');

writeln(s:0:8);

readln;

End.

Тестирование программы:

Переменные a, b, h заданы в разделе констант в программе:

const

a=3;

b=10;

n=10;

Результат работы программы:

Вычисление суммы значений функции

a = 3

b = 10

n = 10

h = 0.77777778

Результаты вычислений, полученные при помощи различных циклов:

1. Цикл While:

1. Цикл "while"

Значение s: 0.15809431

2. Цикл repeat:

2. Цикл "repeat"

Значение s: 0.15809431

3. Цикл For … To … Do:

3. Цикл "for ... to ... do"

Значение s: 0.15809431

4. Цикл For … DownTo … Do:

4. Цикл "for ... downto ... do"

Значение s: 0.15809431

Программа дает одинаковые результаты для всех циклов, отладка завершена.

2. Опишите оператор While.

Оператор While имеет следующую структуру:

Whileлогическое выражениеdoоператор;

Работает этот оператор очень просто. Вычисляется значение логического выражения. Если получается истина (True), то выполняется оператор, а затем снова вычисляется значение логического выражения. Если снова получается истина, то опять выполняется оператор, и т.д. Так продолжается до тех пор, пока при вычислении логического выражения не получится ложь (False). После этого оператор While заканчивает свою работу и передает действие следующему оператору.

В частности, если в самом начале работы While при вычислении логического выражения получается ложь, то оператор не выполнится ни разу. Как обычно, в качестве оператора может выступать некоторый составной оператор. Может показаться странным, что оператор While вообще когда-нибудь заканчивает свою работу. В самом деле, почему одно и то же логическое выражение сначала было истинным, а потом, после нескольких выполнений оператора, стало ложным? Логическое выражение зависит от нескольких переменных, значение которых меняется во время выполнения оператора, что влечет за собой изменения значения логического выражения. В принципе, это вовсе не означает, что каждый оператор While когда-нибудь заканчивает работу. То есть, не исключена ситуация, когда логическое выражение всегда будет истинным, и оператор While будет работать вечно. Такая ситуация называется зацикливанием. Таким образом, при использовании оператора While и вообще других циклических операторов нужно быть аккуратным и стараться избегать зацикливаний. Это значит, что при программировании любого цикла нужно стараться всегда объяснить самому себе, почему этот цикл не будет вечным, а когда-нибудь закончит свою работу.

3. В чем ее основные отличия от остальных циклов Turbo Pascal?

Цикл while имеет следующие отличия от оператора repeat:

1) В операторе while проверка условия выхода выполняется в начале выхода, а у repeat в конце.

2) Тело цикла может выполняться ни разу в while, а в repeat всегда выполняется хотя бы один раз;

3) Условие выхода удовлетворяется, если выражение ложно, repeat – если истинно;

4) Тело цикла должно содержать только один оператор, а в repeat можно поместить любое количество операторов.

Оператор For: Если значение условного выражения истинно, то цикл продолжает выполняться, а если значение условного выражения ложно, то происходит выход из цикла. После выхода из цикла идет переход к следующему оператору программы. Изменение – это выражение, определяющее, как будет меняться параметр цикла. В операторе for сначала проверяется условие и если значение условия "истинно", то идёт выполнение тела цикла (блока операторов или простого оператора).

Задание №3. «Массивы и подпрограммы»

Результатом выполнения третьего задания должна быть программа, написанная с использованием подпрограмм – не менее 2 процедур и 1 функции.

Задание связанно с действиями над квадратной матрицей m[n,n], у которой количество строк и столбцов равно n (2 ≤ n ≤ 10). Матрицы могут быть либо вещественного, либо целого типа. Значения компонентов матрицы следует задавать случайным образом и в таком диапазоне, чтобы полученные данные были нетривиальными, т.е. неочевидными, не лежащими на поверхности.

Задание:

1) Найти минимальное и максимальное значение компонентов квадратной вещественной матрицы m[n,n].

2) Поменять местами в матрице m[n,n] компоненты строки, содержащей минимум, с компонентами столбца, содержащего максимум. Если минимумов или максимумов в матрице несколько, то взять строку и столбец первых встречных при переборе из минимумов и максимумов соответственно.

3) В одномерный массив v[n] записать компоненты главной диагонали измененной матрицы m[n,n] (индексы строки и столбца главной диагонали равны).

4) Вычислить сумму компонентов полученного массива v[n].

5) На экран вывести исходную матрицу m[n,n], первые встреченные минимальную и максимальную компоненты с индексами, измененную матрицу m[n,n], массив v[n], сумму компонентов массива v[n].

Решение.

В следующей программе использованы 3 процедуры:

- input_matrix для ввода n и заполнения матрицы m[n,n];

- output_matrix для вывода матрицы на экран;

- change_matrix для изменения элементов стоки и столбца матрицы;

и одна функция:

- vector_v для вывода на экран вектора v[n] и суммирования его элементов.

Формат вывода результатов расчета задается постоянной digits:

const

digits=3;

которая указывает, сколько знаков после запятой отображать.

Программа:

program prog3;

const

digits=3;

type

matrix=array[1..10, 1..10] of real;

vector=array[1..10] of real;

var

m:matrix;

v:vector;

n:integer;

procedure input_matrix (var m:matrix; var n:integer);

var

p1,p2,a,b:real;

input:boolean;

i,j:integer;

begin

input:=false;

repeat

writeln('Введите размер квадратной матрицы n');

writeln('не менее 2 и не более 10:');

readln(n);

if (n<2) or (n>10) then

begin

writeln(' Вы ввели неправильный размер матрицы,');

writeln('n должно быть не менее 2 и не более 10.');

end

else

begin

input:=true;

end;

until input;

writeln('Введителевую a иправую b границы ');

writeln('диапазона значений компонент матрицы:');

write('a = ');readln(a);

write('b = ');readln(b);

if a>b then

begin

p1:=a;

a:=b;

b:=p1;

end;

if a=b thenbegin p1:=0; p2:=b; end

elseif b=0 thenbegin p1:=a; p2:=0; end

elsebegin p1:=b-a; p2:=a; end;

{p1 - расстояние между левой и правой границей}

{p2 - левая граница}

randomize;

for i:=1 to n do

for j:=1 to n do

m[i,j]:=p2+random*p1;

end; {input_matrix}

procedure output_matrix(var m:matrix; n:integer);

var

i,j:integer;

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

write(m[i,j]:0:digits);

write(' ');

end;

writeln;

end;

writeln;

end; {output_matrix}

procedure change_matrix(var m:matrix;n:integer);

var

i,j:integer;

min_r,min_c,max_r,max_c:integer;

min_z,max_z:real;

value:real;

begin

min_z:=100000;

for i:=1 to n do

for j:=1 to n do

if m[i,j]<min_z then

begin

min_r:=i;min_c:=j;min_z:=m[i,j];

end;

writeln('Минимальное значение и индексы:');

write(min_z:0:digits);

write('; столбец: ');

write(min_c);

write(', строка: ');

writeln(min_r);

max_z:=-100000;

for i:=1 to n do

for j:=1 to n do

if m[i,j]>max_z then

begin

max_c:=j;max_r:=i;max_z:=m[i,j];

end;

writeln('Максимальное значение и индексы:');

write(max_z:0:digits);

write('; столбец: ');

write(max_c);

write(', строка: ');

writeln(max_r);

{изменение элементов строки и столбца}

write('Изменение элементов ');

write(min_r);

write(' строки и ');

write(max_c);

writeln(' столбца');

for i:=1 to n do

begin

value:=m[min_r,i];

m[min_r,i]:=m[i,max_c];

m[i,max_c]:=value;

end;

end; {change_matrix}

procedure vector_v(m:matrix;var v:vector;n:integer);

var

i:integer;

s:real;

begin

for i:=1 to n do

v[i]:=m[i,i];

s:=0;

for i:=1 to n do

s:=s+v[i];

writeln('Вектор v[n]:');

for i:=1 to n do

write(v[i]:0:digits,' ');

writeln;

write('Сумма компонентов вектора: ');

writeln(s:0:digits);

end; {vector_v}

begin

input_matrix(m,n);

writeln('Первоначальнаяматрица');

output_matrix(m,n);

change_matrix(m,n);

writeln('Новаяматрица');

output_matrix(m,n);

vector_v(m,v,n);

readln;

end.

Тестирование программы:

Введите размер квадратной матрицы n

не менее 2 и не более 10:

3

Введите левую a и правую b границы

диапазона значений компонент матрицы:

a = -5

b = 5

Первоначальная матрица

4.326 -3.582 -2.539

-2.236 -1.983 1.980

2.884 3.248 -1.216

Минимальное значение и индексы:

-3.582; столбец: 2, строка: 1

Максимальное значение и индексы:

4.326; столбец: 1, строка: 1

Изменение элементов 1 строки и 1 столбца

Новая матрица

4.326 -2.236 2.884

-3.582 -1.983 1.980

-2.539 3.248 -1.216

Вектор v[n]:

4.326 -1.983 -1.216

Сумма компонентов вектора: 1.127

Результаты тестирования:

- сгенерированные элементы матрицы не выходят за границы заданного диапазона;

- минимальное и максимальное значения определены верно;

- вектор диагональных элементов составлен правильно;

- изменены местами нужные строка и столбец.

Отладка завершена.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно