3-1 (1185052)
Текст из файла
ЗАДАЧА 3.1 пример
Тема: Обработка данных логического типа. Задание: Разработать алгоритм и программу
Условие: Если в массиве y более половины элементов имеют значени true, присвоить переменной z значение true и вычислить сумму элементов массива x. В противном случае z присваивается значение false, и указанная сумма не считается.
2а) Использумые компоненты
Имя компонента (Name) | Для чего используется | Примечание |
Form1 | Для размещения всех требуемых в задаче компонент | |
| Label1 | Для размещения текста ‘n=’ | |
| Label2 | Для размещения текста ‘массив x’ | |
| Label3 | Для размещения текста ‘массив y’ | |
| Label4 | Для размещения текста ‘z=’ | |
| Label5 | Для размещения текста ‘sum=’ | |
| Edit1 | Для ввода значения n | |
| Edit2 | Для вывода значения z | |
| Edit3 | Для ввода значения sum | |
| StringGrid1 | Для ввода значений элементов массива x | Кол-во столбцов=1, кол-во строк =10 |
| StringGrid2 | Для ввода значений элементов массива y | Кол-во столбцов=1, кол-во строк =10 |
| Button1 | Для запуска проекта на решение | |
| Button2 | Для очистки всех компонент |
2в) Таблица событий
| Имя компонента (Name) | Название события | Описание События | Реакция на событие | Имя соответствующей процедуры – обработчика события |
| Button1 | OnClick | Щелчок по мышке | Решение задачи | TForm1.Button1Click |
| Button1 | OnClick | Щелчок по мышке | Очистка компонент | TForm1.Button2Click |
3) procedure TForm1.Button1Click, TForm2.Button1Click :
3а) Таблица данных для procedure TForm1.Button1Click
| Вид данного | Обозна-чение | Смысл | Тип | Примечан |
| Исходные данные (ИД) | x | Заданный массив | Веществ.одномерный массив (array[1..10] of real) | |
| y | Заданный массив | Логический одномерный мас- сив (array[1..10] of boolean) | ||
| n | Кол-во эл-тов массивов x, y | Целое (integer) | n<=10 | |
| Результи- рующие данные (РД) | z | Переменная | Логический (boolean) | = true, если в массиве у больше половины зна- чений эл-тов true, = false в противном случае |
| sum | Сумма эл-тов массива y | Веществ.(real) | ||
| Промежу-точные данные (РД) | i | Порядковый номер эл-тов массивов x,y | Целое (integer) | |
| kol | Количество значений true в массиве y | Целое (integer) |
3б)Алгоритм 3в) Программа
| Начало Ввод n Ввод массива x Ввод массива y kol=0 Для i от 0 до n -1 шаг 1 цикл Если y(i)=true то kol:=kol+1 Конец цикла Если kol>[n/2], то z := true sum:=0 Для i от 0 до n -1 шаг 1 цикл sum:= sum + x[i] Конец цикла Иначе z := false Вывод ‘ не выводится ’ Конец если | Procedure TForm1.Button1Click(Sender: TObject); var x: array [0..9] of real; y: array [0..9] of boolean; z: boolean; sum: real; n,i,kol: integer; begin n:= StrToInt(Edit1.text); for i:=0 to n-1 do begin x[i]:= StrToFloat(StringGrid1.Cells[0,i]); y[i]:= StringGrid2.Cells[0,i]='true'; end; kol:=0; sum:=0; for i:=0 to n-1 do if y[i] then kol:=kol+1; if (kol>n div 2) then begin z:= true; Edit2.text:= 'true'; for i:=0 to n-1 do sum:=sum + x[i]; Edit3.text:= FloatToStr(sum); end else begin z:= false; Edit2.text:= 'false'; Edit3.text:= 'не подсчитывается'; end; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin Edit1.text:=' '; Edit2.text:=' '; Edit3.text:=' '; for i:=0 to 9 do begin StringGrid1.Cells[0,i]:=' '; StringGrid2.Cells[0,i]:=' '; end; end; |
4)Тестирование
4а)Аномалии: в массиве w нет элементов, синус которых отрицателен
4б) Тесты
| № пп | Что проверяется | Значения исходных данных | Ожидаемый результат |
| 1 | В массиве y больше половины элементов имеют значение true | n=5, y=( true, false, false, true, true), x= (-1.5, 4.5, 1, 3, -2) | z=true sum=5 |
| 2 | В массиве y меньше половины элементов имеют значение true | n=5, y=( true, false, false, true, false), x= (-1.5, 4.5, 1, 3, -2) | z=false sum= не подсчитывается |
procedure TForm1.Button1Click(Sender: TObject);
var x: array [0..9] of real; y: array [0..9] of boolean;
z: boolean; sum: real; n,i,kol: integer;
begin
n:= StrToInt(Edit1.text);
for i:=0 to n-1 do
begin x[i]:= StrToFloat(StringGrid1.Cells[0,i]); y[i]:= StringGrid2.Cells[0,i]='true'; end;
kol:=0; sum:=0;
for i:=0 to n-1 do if y[i] then kol:=kol+1;
if (kol>n div 2) then begin z:= true; Edit2.text:= 'true';
for i:=0 to n-1 do sum:=sum + x[i];
Edit3.text:= FloatToStr(sum);
end
else begin z:= false; Edit2.text:= 'false'; Edit3.text:= 'не подсчитывается'; end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
Edit1.text:=' '; Edit2.text:=' '; Edit3.text:=' ';
for i:=0 to 9 do
begin StringGrid1.Cells[0,i]:=' '; StringGrid2.Cells[0,i]:=' '; end;
end;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















