1_4 (Delphi. Лабы. Много неизвестных вариантов и примеров)
Описание файла
Файл "1_4" внутри архива находится в папке "Delphi. Лабы". Документ из архива "Delphi. Лабы. Много неизвестных вариантов и примеров", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "1_4"
Текст из документа "1_4"
ЗАДАЧА 1.4.пример Студент Иванов И.И., Гр. Р-10-01
Тема: Обработка одномерных массивов. Алгоритм с ветвлением в теле цикла.
Задание: Разработать алгоритм и программу с единственным циклом для обработки одномерного массива
1)Условие задачи:
Для заданного массива w из n элементов найти количество элементов синус которых больше 0.5, а также среднее арифметическое элементов, значения синуса которых отрицательно.
2а) Использумые компоненты
Имя компонента (Name) | Для чего используется | Примечание |
Form1 | Для размещения всех требуемых в задаче компонент | |
Label1 | Для размещения текста ‘n=’ | |
Label2 | Для размещения текста ‘ Массив w’ | |
Label3 | Для размещения текста ‘n >10, введите снова’ | |
Label4 | Для размещения текста ‘kol=’ | |
Label5 | Для размещения текста ‘sa=’ | |
Edit1 | Для ввода значения n | |
Edit2 | Для вывода значения kol | |
Edit3 | Для вывода значения sa | Если нет эл-тов <0, выводится сообщение |
StringGrid1 | Для ввода значений элементов массива w | Кол-во столбцов=1, кол-во строк 10 |
Button1 | Для запуска проекта на решение |
2в) Таблица событий
Имя компонента (Name) | Название события | Описание события | Реакция на событие | Имя соответствующей процедуры – обработчика события |
Button1 | OnClick | Щелчок по мышке | Решение задачи, результат выводится в окошки Edit2, Edit3 | TForm1.Button1Click |
3) procedure Form1.Button1Click :
3а) Таблица данных
Вид данного | Обозначение | Смысл | Тип | Примечан |
Исходные данные (ИД) | w | Заданный массив | Веществ.одномерный мас- сив (array[1..10] of real) | |
n | Кол-во элементов массива w | Целое (integer) | n<=10 | |
Результирующие данные (РД) | kol | Кол-во эл-тов массива w синус которых > 0.5 | Целое (integer) | |
sa | Ср. арифм. эл-тов массива w синус которых < 0 | Веществ. (real) | ||
Промежуточные данные (ПД) | i | Номер текущего значения элемента массива w | Целое (integer) | |
kol1 | Кол-во эл-тов массива w синус которых < 0 | Целое (integer) |
3б)Алгоритм 3в) Программа
Начало ввод n если n<=10 то ввод массива w kol:=0 kol1:=0 sa:=0 для i от 1 до n шаг 1 цикл если (w[i] > 0.5) то kol:= kol + 1 конец если если (w[i] < 0) то kol1 := kol1 + 1 sa := sa + w[i] конец если конец цикла вывод kol если (kol1 > 0) то sa:= sa / kol1 вывод sa иначе вывод ‘ Sin(w[i])>=0 для всех i ’ конец если иначе вывод “ n>10, введите снова “ конец если конец | . . . procedure TForm1.Button1Click(Sender: TObject); var w : array[1..10] of real; sa : real; n, i, kol, kol1: integer; begin n:= StrToInt(Edit1.text); if (n<=10) then begin Edit3.text:= ' '; for i:=1 to n do w[i]:= StrToFloat(StringGrid1.Cells[0, i -1]); kol:=0; kol1:=0; sa:=0; for i:=1 to n do begin if (sin(w[i]) > 0.5) then kol:= kol + 1; if (sin(w[i]) < 0) then begin kol1:= kol1+1; sa:=sa + w[i]; end; end Edit2.text:=IntToStr(kol); if (kol1 > 0) then begin sa:= sa / kol1; Edit3.text:=FloatToStr(sa); end else Edit3.text:= ‘ Sin(w[i])>=0 для всех i ’ ; end else Label3.caption:= ‘n>10, введите снова’ ; end; . . . |
4)Тестирование
4а)Аномалии: T1) n>10 T2) в массиве w нет элементов, синус которых отрицателен
4б) Тесты
№ пп | Что проверяется | Значения исходных данных | Ожидаемый результат |
1 | Реакция программы при n>10 | n=11 | Выводится текст ‘n>10, введите снова' |
2 | В массиве w нет эл-тов, синус которых < 0 , но есть эл-ты, синус которых > 0.5 | n=5 w=(0.1, 0.785, - 3, - 2.3, 0 ) | kol=2 ‘Sin(w[i])>=0 для всех i ’ |
3 | В массиве w есть эл-ты, синус которых < 0, но нет элементов, синус которых > 0.5 | n=5 w=(0.1, - 0.1, 0, 0.2, - 0.7) | kol=0 sa= … |
4 | В массиве w есть эл-ты, синус которых < 0 и есть элементы, синус которых > 0.5 | n=5 w=(0.1, 0.8, - 0.1, 0, 2.3) | kol=1 sa= … |