Написать программу для следующих расчетов. Создать одномерный массив размерностью N (вводится с диалогового окна) состоящий из случайных целых чисел в диапазоне [-15;25]. Вывести массив на лист. Найти минимальное число массива. Если минимум является четным, то в ячейку B1 вывести половину его значения, иначе вывести в ячейку B2 удвоенное значение. (Решите в ).
1) arcsin
if abs(x)<1 then
y:=arctan(x/sqrt(1-x*x)
else y:=Pi*x;
2) arccos
y:=arctan(sqrt(1-x*x)/x);
if x<0 then y:=Pi+y;
3) arctg
y:=arctan(x);
4) arcctg
if x=0 then y:=Pi else y:=arctan(1/x);
if x<0 then y:=Pi+y;
5) n!
y:=1;
for i:=1 to x do y:=y*i;
6) %
y:=x/100
Следует при проверке иметь ввиду, что арксинус и арккосинус могут быть только в пределах от -1 до 1. Другие значения вводить нельзя. Или надо добавить проверку на корректность входных данных.
begin
if pos('7', IntToStr(x)) = 0
then result := False
else result := True
end;
const
n = 1000;
var
a: array[1..n] of integer;
ii: integer;
i, o: text;
begin
AssignFile(i, 'Input.dat');
AssignFile(o, 'Output.dat');
Rewrite(o);
Reset(i);
for ii := 1 to n do
readln(i, a[ii]);
for ii := 1 to n do
if find(a[ii])
then writeln(o, a[ii]);
CloseFile(i);
CloseFile(o);
end.
Функция Find пытается разыскать цифру 7 в целом числе, которое она получает в качестве аргумента. Если поиск успешен, возвращается "Истинно", если нет - "Ложно" - это символизирует успешность поиска.
В программе используются два текстовых файла - i, связанный с файлом input.dat, и o, связанный с файлом Output.dat.
Данные из input.dat считываются в целочисленный массив a, содержащий 1000 элементов.
Затем элементы массива просматриваются, начиная с первого, на предмет наличия в элементе числа, содержащего цифру 7, что проверяется вызовом функции Find. Каждое число, содержащее цифру 7, выводится в файл Output.dat.
Недостаток программы: если в файле input.dat будет меньше 1000 чисел, программа все равно будет просматривать все 1000 элементов, анализируя оставшийся "мусор". так же есть большая вероятность, что программа будет аварийно завершена, если этот "мусор" не сможет быть интерпретирован, как целые числа.