Напишите программу, в которой определяются координаты точки С (x,y), делящей отрезок AB
с координатами концов А(x1,y1) и В(x2,y2) на части таким образом, что AC=m*АВ (где 0 От пользователя требуется ввод координат точек А и В и коэффициента решить Паскале
Результат должен быть 3.2; 3.7
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Rewrite(f,'books.dat');
Writeln('Ввод данных по книгам');
var s1,s2:string;
var i1,i2:integer;
var book:tBook;
repeat
s1:=ReadlnString('Автор или * для окончания ввода:');
if s1<>'*' then begin
s2:=ReadlnString('Название книги:');
i1:=ReadlnInteger('Количество страниц:');
i2:=ReadlnInteger('Год издания:');
(book.author,book.naim,book.pages,book.godizd):=(s1,s2,i1,i2);
Write(f,book)
end
until s1='*';
Writeln('*** Ввод завершен ***');
f.Close
end.
Тестовое решение
Ввод данных по книгам
Автор или * для окончания ввода: Жюль Верн
Название книги: 80 тысяч километров под водой
Количество страниц: 573
Год издания: 1951
Автор или * для окончания ввода: Сергей Лукьяненко
Название книги: Дозор
Количество страниц: 934
Год издания: 2004
Автор или * для окончания ввода: Жюль Верн
Название книги: Властелин мира
Количество страниц: 104
Год издания: 2011
Автор или * для окончания ввода: *
*** Ввод завершен ***
2. Программа для выборки
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Reset(f,'books.dat');
var s:=ReadlnString('Автор книги:');
var y:=Readinteger('Год издания, не ранее:');
var k:=0;
var book:tBook;
while not f.Eof do begin
Read(f,book);
if (book.author=s) and (book.godizd>=y) then begin
Writeln(book);
Inc(k)
end;
end;
if k=0 then Writeln('Таких книг не найдено');
f.Close
end.
Тестовое решение
Автор книги: Жюль Верн
Год издания, не ранее: 2005
(Жюль Верн,Властелин мира,104,2011)
розгалуження виконується, коли виконання попереднього розгалуження ще не закінчено.
Наприклад, вам потрібно встановити будильник на завтра. Якщо
завтра робочий день, то ви повинні встати о 7-й годині ранку, щоб іти
до школи. Якщо завтра субота, то ви повинні встати о 8-й годині ранку, щоб їхати на заняття гуртка. Якщо завтра неділя, то ви встаєте о
9-й годині ранку.
У наведеному на малюнку алгоритмі друге розгалуження з
умовою Завтра субота? міститься всередині першого розгалуження з
умовою Завтра робочий день?.
Такий фрагмент алгоритму називають вкладеним розгалуженням.
Вкладені розгалуження - це фрагмент алгоритму, у якому одне
розгалуження міститься всередині іншого розгалуження.
Розглянемо виконання наведеного на малюнку 3.26 фрагмента алгоритму. Спочатку перевіряється умова Завтра робочий день?. Якщо
результат перевірки цієї умови Так, то виконується команда Установити будильник на 7-му годину ранку і на цьому виконання всього
цього фрагмента алгоритму закінчується. Якщо результат перевірки
умови Завтра робочий день? - Ні, то перевіряється умова Завтра субота?. Якщо результат перевірки цієї умови Так, то виконується команда
Установити будильник на 8-му годину ранку і на цьому виконання всього цього фрагмента алгоритму закінчується, а якщо результат перевірки
цієї умови Ні, то виконується команда Установити будильник на 9-ту
годину ранку і виконання всього цього фрагмента алгоритму закінчується.
У наведеному на малюнку
фрагменті алгоритму внутрішнє
розгалуження виконується, якщо результат перевірки умови зовнішнього розгалуження Ні.
Объяснение:
рисунок 3.26 (во вложении)