По заданным координатам точек А и В вычислите длину отрезка АВ Пример входных данных: ха=10ya=2xb=10yb=7с объяснением
Program rost;
const n=10;
var i,j,x,imin:integer;
a:array[1..n] of integer;
begin
for i:=1 to n do read(a[i]);
for i:=1 to n do write(a[i], ‘ ‘ );
writeln;
for i:=1 to n-1 do
begin
imin:=i;
for j:=i+1 to n do if a[j]<a[imin] then imin:=j;
x:=a[i];
a[i]:=a[imin]; a[imin]:=x
end;
for i:=1 to n do write (a[i], ‘ ‘ );
writeln;
end.
Пример:
6 4 9 2 5 1 3 7 8 2
6 4 9 2 5 1 3 7 8 2
1 2 2 3 4 5 6 7 8 9
1 по горизонтали
2-я по вертикали
3-я по горизонтали
Uses Crt;
const
p=5; < ежегодный процент >
n100=100; < количество лет >
n200=200; < количество лет >
s0=1000; <начальная сумма >
soz=100000; < на постройку общественных зданий >
sb=1061000; < оставить жителям Бостона >
var
s,s100,s200:longint;
k100,k200:real;
begin
ClrScr;
k100:=exp(n100*ln(1+p/100)); <процент за 100 лет>
k200:=exp(n200*ln(1+p/100)); <процент за 200 лет>
s100:=Trunc(s0*k100);
Writeln(‘Через первые 100 лет сумма составит ‘,s100);
Writeln(‘На постройку общественных зданий: ‘,soz);
s:=s100-soz;
Writeln(‘Остаток: ‘,s);
s100:=Trunc(s*k100);
Writeln(‘Через вторые 100 лет сумма составит ‘,s100);
Writeln(‘Оставить бостонским жителям: ‘,sb);
Writeln(‘Правлению Массачусетской общины: ‘,s100-sb);
Writeln(‘*** За ‘,n200,’ лет, если бы сумм не снимали: ‘,
Trunc(s0*k200));
Readkey;
end.
<em><u>Тестовое решение:</u></em>
Через первые 100 лет сумма составит 131501
На постройку общественных зданий: 100000
Остаток: 31501
Через вторые 100 лет сумма составит 4142421
Оставить бостонским жителям: 1061000
Правлению Массачусетской общины: 3081421
*** За 200 лет, если бы сумм не снимали: 17292580
Условие
Даны четыре действительных числа: x1, y1, x2, y2. Напишите функцию distance(x1, y1, x2, y2) , вычисляющая расстояние между точкой (x1,y1) и (x2,y2). Считайте четыре действительных числа и выведите результат работы этой функции.
Если вы не знаете, как решить эту задачу, то вы, возможно, не изучали в школе теорему Пифагора. Попробуйте прочитать о ней на Википедии.
Программирование линейных алгоритмов
Программы, реализующие линейные алгоритмы, являются простейшими. Все имеющиеся в них операторы выполняются последовательно, один за другим.
Программируя линейные алгоритмы, рассмотрим более подробно целочисленные, логические, символьные и строковые типы данных.
3.3.1. Числовые типы данных
Вы уже знакомы с основными числовыми типами данных integer и real. К ним применимы стандартные функции, часть из которых приведена в табл. 3.3.
Таблица 3.3
Стандартные функции Паскаля
Исследуем работу функций round, int и frас, применив их к некоторому вещественному х. Соответствующая программа будет иметь вид:

Запустите программу несколько раз для каждого х ∈ <10,2; 10,8; -10,2; -10,8>. Что вы можете сказать о типе результата каждой из этих функций?
3.3.2. Целочисленный тип данных
Над целыми числами в языке Паскаль выполняются следующие операции: сложение (+), вычитание (-), умножение (*), получение целого частного (div), получение целого остатка деления (mod) и деление (/). Результаты первых пяти операций — целые числа. Результатом операции деления может быть вещественное число.
Рассмотрим пример использования операций div и mod, записав на языке Паскаль программу нахождения суммы цифр вводимого с клавиатуры натурального трёхзначного числа.
Используем тот факт, что положительное трёхзначное число можно представить в виде следующей суммы: х — а*100 + 6*10 + с, где а,Ь,с — цифры числа.

Чему равна сумма цифр числа 123? А числа -123? Совпадают ли ваши результаты с результатами работы программы? Как можно объяснить и исправить ошибку в программе?
3.3.3. Символьный и строковый типы данных
Значением символьной величины (тип char) в языке Паскаль является любой из символов, который можно получить на экране нажатием на клавиатуре одной из клавиш или комбинации клавиш, а также некоторых других символов, в том числе и невидимых. Множество таких символов состоит из 256 элементов, каждому из которых согласно используемой кодовой таблице поставлен в соответствие код — число 0 до 255.
Символы, соответствующие первым 32 кодам, являются управляющими, а остальные — изображаемыми. К изображаемым символам относится и пробел, имеющий код 32.
Знакам препинания, знакам арифметических операций, цифрам, прописным и строчным латинским буквам соответствуют коды от 33 до 127. Буквам национального алфавита соответствуют коды с номерами 128 и далее.
В тексте программы константу символьного типа можно задать, заключив любой изображаемый символ в апострофы: '5', 'В', '*'.
Если значение символьной переменной считывается с клавиатуры, то его следует набирать без апострофов.
Чтобы найти код символа, используют функцию ord, где в качестве параметра задают символ.
Чтобы по коду узнать символ, используют функцию chr, где в качестве параметра указывают код символа.
Значением строковой величины (тип string) является произвольная последовательность символов, заключенная в апострофы. В Паскале (как и в алгоритмическом языке) строки можно сцеплять.
Пример. Запишем на языке Паскаль программу, в которой для введённой с клавиатуры буквы на экран выводится её код. Затем на экран выводится строка, представляющая собой последовательность из трёх букв используемой кодовой таблицы: буквы, предшествующей исходной; исходной буквы; буквы, следующей за исходной.

3.3.4, Логический тип данных
Как известно, величины логического типа принимают всего два значения; в Паскале это false и true. Эти константы определены так, что false < true.
Логические значения получаются в результате выполнения операций сравнения числовых, символьных, строковых и логических выражений. Поэтому в Паскале логической переменной можно присваивать результат операции сравнения.
Пример. Напишем программу, определяющую истинность высказывания «Число п является чётным» для произвольного целого числа n.
Пусть ans — логическая переменная, а n — целая переменная. Тогда в результате выполнения оператора присваивания
переменной ans будет присвоено значение true при любом чётном n и false в противном случае.

Логическим переменным можно присваивать значения логических выражений, построенных с помощью известных вам логических функций и, или, не, которые в Паскале обозначаются соответственно and, or, not.
Пример. Напишем программу, определяющую истинность высказывания «Треугольник с длинами сторон а, b, с является равнобедренным» для произвольных целых чисел а, Ь, с.

САМОЕ ГЛАВНОЕ
В языке Паскаль используются вещественный, целочисленный, символьный, строковый, логический и другие типы данных. Для них определены соответствующие операции и функции.
Вопросы и задания
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.
2. Для заданного х вычислите у по формуле у = х 3 + 2,5x 2 — х + 1.
а) операцию возведения в степень использовать запрещено;
б) в одном операторе присваивания можно использовать не более одной арифметической операции (сложение, умножение, вычитание);
в) в программе может быть использовано не более пяти операторов присваивания.
Подсказка: преобразуйте выражение к следующему виду: у = ((х + 2,5)х — 1)х + 1.
3. По заданным координатам точек А и. В вычислите длину отрезка АВ.
Подсказка. Расстояние d между точками А (ха, уа) и В (хb, уb) выражается формулой
.

4. Известны длины сторон треугольника а, b, с. Напишите программу, вычисляющую площадь этого треугольника.

5. Известны координаты вершин А, В, С треугольника. Напишите программу, вычисляющую площадь этого треугольника.

6. Если сумма налога исчисляется в рублях и копейках, то налоговая служба округляет её до ближайшего рубля (до 50 копеек — с недостатком, свыше 50 копеек (включая 50) — с избытком). Используйте компьютер, чтобы ввести точную сумму налога и вывести, сколько следует уплатить.
7. Исследуйте работу функции random, запустив многократно на выполнение программу:

Как можно получить случайное число из интервала (0, х)?
Как можно получить случайное число из интервала (0, x]?
Как можно получить случайное число из интервала (n, х + n)?
8. Одна компания выпустила лотерейные билеты трёх разрядов: для молодежи, для взрослых и для пенсионеров. Номера билетов каждого разряда лежат в пределах:
для молодёжи — от 1 до 100;
для взрослых — от 101 до 200;
для пенсионеров — от 201 до 250.
С помощью компьютера выберите случайным образом лотерейный билет в каждом разряде.
9. Запишите на языке Паскаль программу, которая для произвольного натурального двузначного числа определяет:
а) сумму и произведение его цифр;
б) число, образованное перестановкой цифр исходного числа.
10. Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим возможным количеством банкнот по 500 (k500), 100 (klOO), 50 (k50) и 10 (klO) рублей.

11. Идёт k-я секунда суток. Разработайте программу, которая по введённой k-й секунде суток определяет, сколько целых часов h и целых минут m прошло с начала суток. Например, если k = 13 257 = 3 • 3600 + 40 • 60 + 57, то h = 3 и m = 40.
Выведите на экран фразу:
It is . hours . minutes
Вместо многоточий программа должна выводить значения hum, отделяя их от слов ровно одним пробелом.

12. Запишите на языке Паскаль программу, которая вычисляет сумму кодов букв в слове «БАЙТ».
13. Запишите на языке Паскаль программу, которая формирует и выводит на экран строку символов, коды которых равны 66, 69, 71, 73, 78.
14. Разработайте программу, которая запрашивает три строковые величины — взаимосвязанные прилагательное, существительное и глагол, а затем выводит все варианты фраз с использованием введённых слов.

15. Даны значения целочисленных переменных: а = 10, b = 20. Чему будет равно значение логической переменной rez после выполнения операции присваивания?
а)rez:=(а=10) or (b>10)
б)rez: = (a>5) and (b>5) and (a<20) and (b<30)
в)rez: = (not(a<15) ) or (b>20)
16. Составьте программу, вводящую true, если высказывание является истинным, и false в противном случае:
а) сумма цифр трёхзначного числа х является чётным числом;
б) треугольник со сторонами а, b, с является разносторонним.
Электронное приложение к уроку

| Презентации, плакаты, текстовые файлы | Вернуться к материалам урока | Ресурсы ЭОР |

Презентация «Программирование линейных алгоритмов» (Open Document Format)
Свободное программное обеспечение:
- PascalABC
http://pascalabc.net/
Cкачать материалы урока 
Длина отрезка
Отрезком называют часть прямой линии, состоящей из всех точек этой линии, которые расположены между данными двумя точками — их называют концами отрезка.
Рассмотрим первый пример. Пусть в плоскости координат задан двумя точками некий отрезок. В данном случае его длину мы можем найти, применяя теорему Пифагора.
Итак, в системе координат начертим отрезок с заданными координатами его концов (x1; y1) и (x2; y2) . На оси X и Y из концов отрезка опустим перпендикуляры. Отметим красным цветом отрезки, которые являются на оси координат проекциями от исходного отрезка. После этого перенесем параллельно к концам отрезков отрезки-проекции. Получаем треугольник (прямоугольный). Гипотенузой у данного треугольника станет сам отрезок АВ, а его катетами являются перенесенные проекции.
Вычислим длину данных проекций. Итак, на ось Y длина проекции равна y2-y1, а на ось Х длина проекции равна x2-x1. Применим теорему Пифагора: |AB|² = (y2 — y1)² + (x2 — x1)². В данном случае |AB| является длиной отрезка.
Если использовать данную схему для вычисления длины отрезка, то можно даже отрезок и не строить. Теперь высчитаем, какова длина отрезка с координатами (1;3) и (2;5). Применяя теорему Пифагора, получаем: |AB|² = (2 — 1)² + (5 — 3)² = 1 + 4 = 5. А это значит, что длина нашего отрезка равна 5:1/2.
Рассмотрим следующий способ нахождения длины отрезка. Для этого нам необходимо знать координаты двух точек в какой-либо системе. Рассмотрим данный вариант, применяя двухмерную Декартову систему координат.

Итак, в двухмерной системе координат даны координаты крайних точек отрезка. Если проведем прямые лини через эти точки, они должны быть перпендикулярными к оси координат, то получим прямоугольный треугольник. Исходный отрезок будет гипотенузой полученного треугольника. Катеты треугольника образуют отрезки, их длина равна проекции гипотенузы на оси координат. Исходя из теоремы Пифагора, делаем вывод: для того чтобы найти длину данного отрезка, нужно найти длины проекций на две оси координат.
Найдем длины проекций (X и Y) исходного отрезка на координатные оси. Их вычислим путем нахождения разницы координат точек по отдельной оси: X = X2-X1, Y = Y2-Y1.
Рассчитаем длину отрезка А, для этого найдем квадратный корень:
Если наш отрезок расположен между точками, координаты которых 2;4 и 4;1, то его длина, соответственно, равна √((4-2)²+(1-4)²) = √13 ≈ 3,61.