Нужна , написать программу на си
алгоритм поиска оформить в виде функции:
сформировать массив а[n], элементы которого выбираются случайным образом из интервала [101, 290]. определить методом последовательного поиска, содержит ли он заданное число. если элемент найден, то удалить его и стоящий перед ним элемент из массива.
#include <math.h>
#include <stdlib.h>
#include <conio.h>
int main() {
double a, b, y;
int x;
a = 6.72f;
b = 4.85f;
printf("vvedite x=");
scanf("%d", &x);
switch (x) {
case 1: y = 1 + sqrt(a + abs(x)); break;
case 7: y = 2 + a*a*x*x + exp(x); break;
case 5: y = x*sqrt(1+b*log(a*a*x)); break;
default:
printf("znachenie x zadano neverno\n");
printf("nagmi Enter\n");
getch();
return 0;
}
printf("x=%2dy=%5.2lf", x, y);
getch();
return 0;
}
Мы знаем, что периметр прямоугольника равен Р = 2*(a+b), а площадь равна S=a*б, где a и b - две стороны прямоугольника.
Тогда b =S/a, а периметр P =2a +2b или 2a+2S/a. Отсюда
a*P = 2a² +2S. Имеем квадратное уравнение:
a²-a*P/2+S=0, решая которое относительно а (сторона прямоугольника) при известных коэффициентах P и S, получим значение сторон прямоугольника.
В программе я не проверяю, что введены именно положительные периметр и площадь, надеясь на внимательность вводящего данные.
Итак:
program storona;
uses crt; { используем экран}
var
b,P,S,d,x1,x2: real; {наши переменные}
begin
clrscr; {чистим экран}
write('Wwedite perimetr P: ');
readln(P);
write('Wwedite ploshad S: ');
readln(S);
{Вычисляем дискриминант}
b:=-P/2;
d:= b*b - 4*S;
if d > 0 then {Если дискриминант >0 - все хорошо}
begin
x1:= (-b + sqrt(d))/2;
x2:= (-b - sqrt(d))/2;
writeln('Storona1 = ',x1:0:2); {ответ с двумя знаками после запятой}
writeln('Storona2 = ',x2:0:2);
end;
{Если дискриминант равен 0, то тоже неплохо: у нас квадрат}
if d = 0 then
begin
x1:= -(b/2);
writeln('Storona1 = ',x1:0:2);
writeln('Storona2 = ',x1:0:2);
end;
{Если дискриминант меньше 0, плохо, выводим сообщение}
if d < 0 then
begin
writeln('Ошибка в данных);
end;
readln;
end.