Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90

Решить с помощью процедуры и функции

02.12.2009, 22:20. Показов 2893. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Doc1.doc Решить с помощью процедуры и функции )) Подскажите..)) не въехал в эту тему чёт((

С помощью функции
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program n2;
var z,x:array[1..4] of real;a,b,y:real; i:byte;
function x1(a:real):real;
begin
x1:=Sqrt(cos(a*x[i*i]+1))/exp(-a*x[i])
end;
function x2(b,y:real):real;
begin
x2:=Sqrt(cos(b*y*y)+1)/exp(-b*y)
end;
begin
for i:=1 to 4 do
x[i]:=random(10-1+1)+1;
readln(y);
readln(a);
readln(b);
for i:=1 to 4 do
begin
if x[i]<y then z[i]:=x1(a);
if x[i]>=y then z[i]:=x2(b,y);
end;
for i:=1 to 4 do
write(z[i]:3:1,' ');
readln;
end.
С помощью процедуры
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Program n1;
uses crt;
var x,z:array[1..10] of real; i:byte; a,b,y:real;
Procedure n3(x,z:array of real);
begin
for i:=1 to 4 do
begin
if x[i]<y then Z[i]:=Sqrt(cos(a*x[i*i]+1))/exp(-a*x[i]) else
Z[i]:=(cos(b*y*y)+1)/(exp(-b*y));
end;
end;
begin
clrscr;
write('a='); readln(a);
write('b='); readln(b);
write('y='); readln(y);
for i:=1 to 4 do begin
x[i]:=random(10-1+1)+1;
write(x[i]:1:0,' ':3);end;writeln;writeln;n3(x,z);
for i:=1 to 4 do writeln(z[i]:3:1);
readkey
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2009, 22:20
Ответы с готовыми решениями:

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям...

Решить уравнение с помощью процедур
Решить уровнение: z=x(max) + y(min) / 2, с помощью процедур... где x(max) - максимальный элемент масива x, y(min) - минимальный y ...

14
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
03.12.2009, 00:15  [ТС]
Выложил в документе потому, что не уверен в правильности записи примера))

Добавлено через 1 час 23 минуты
на завтра надо ((( на сегодня теость)
0
 Аватар для Dnnn
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
03.12.2009, 11:35
Pascal
1
2
3
4
function x1(a:real):real;
begin
x1:=Sqrt(cos(a*x[i*i]+1))/exp(-a*x[i])  - вот здесь ...a*x[i]*x[i]...  наверное, x в квадрат возводите, а не i
end;
во 2 варианте с процедурой
var x,z:array[1..10] of real; - массивы объявлены с разм-ю 10, а в процедуре параметры другие, скорее всего компилятор не пропустит, несоответствие типов
Procedure n3(x,z:array of real);

так что лучше тип массива объявить и пользоваться
type mass = array[1..10] of real;
var x, z: mass;
Procedure n3(x: mass; VAR z:mass); -
Х - входной параметр, не будет меняться в процедуре, передаем "по значению"(без var)
Z - выходной параметр, будет меняться - передаем обязательно "по имени"(с VAR) - чтоб изменения внутри процедуры не пропали )
1
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
28.12.2009, 02:43  [ТС]
Вот получился рабочий код через процедуру
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Program n1;
uses crt;
type n2=array[1..10] of real;
var x,z:n2; i:byte; a,b,y:real;
Procedure n3(var x:n2);
begin
for i:=1 to 4 do
if x[i]<y then Z[i]:=Sqrt(cos(a*x[i*i])+1)/exp(-a*x[i]) else
Z[i]:=(cos(b*y*y)+1)/(exp(-b*y));
end;
begin
clrscr;
write('a='); readln(a);
write('b='); readln(b);
write('y='); readln(y);
for i:=1 to 4 do begin
x[i]:=random(10-1+1)+1;
write(x[i]:1:0,' ':3);end;writeln;writeln;n3(x);
for i:=1 to 4 do writeln(z[i]:3:1);
readkey
end.
А через функцию никак никак не получается(( Помогите кто -нить((
0
 Аватар для Eugeniy
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.12.2009, 02:47
Будет зделано, только "i" это, что комплексная единица?
0
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
28.12.2009, 02:54  [ТС]
Нет, просто і переменная для счетчика в цикле )
0
 Аватар для Eugeniy
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.12.2009, 03:06
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Uses crt;
type trig = function (a,x:real):real;
var
x,y,a,b:real;
function trigon(a,x:real):real;
 begin
  trigon:=sqrt(cos(a*sqr(x)))/exp(-a*x);
    end;
function znach(f:trig; a,b,x,y:real):real;
   begin
     if x<y then znach:=f(a,x);
     if x>=y then znach:=f(b,y);
       end;  
begin
Clrscr;
readln(x,y,a,b);
writeln(znach(trigon,a,b,x,y));
readln;
end.
Добавлено через 46 секунд
Постойте, Вам не просто посчитать функцию?

Добавлено через 1 минуту
Дайте догадаюсь, мы вводим четыре значения x и выводим значение функции?
Тогда Все надо делать немного по другому(

Добавлено через 2 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Uses crt;
type trig = function (a,x:real):real;
var
k:integer;
x,y,a,b:real;
function trigon(a,x:real):real;
 begin
  trigon:=sqrt(cos(a*sqr(x)))/exp(-a*x);
    end;
function znach(f:trig; a,b,x,y:real):real;
   begin
     if x<y then znach:=f(a,x);
     if x>=y then znach:=f(b,y);
       end;  
begin
Clrscr;
readln(y,a,b);
for k:=1 to 4 do begin
readln(x);
writeln(znach(trigon,a,b,x,y));
end;
readln;
end.
0
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
28.12.2009, 03:12  [ТС]
В обеих программах ошибки((( Мне надо сделать тоже, что и в программе с процедурой только с помощью функции, х[i] оставить чтобы рандомом присваивало
0
 Аватар для Eugeniy
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.12.2009, 03:23
Теперь правки: перед Uses добавте {$F+} а также возьмите abs от выражения под корнем

Добавлено через 1 минуту
Если хотите, чтобы рандомом, тогда перед циклом наберите
randomize;
В самом цикле random(x)

Добавлено через 6 минут
Так должно работать!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Uses crt;
{$F+}
type trig = function (a:real; x:integer):real;
var
k:integer;
a,b:real;
x,y:integer;
function trigon(a:real; x:integer):real;
 begin
  trigon:=sqrt(cos(a*sqr(x))+1)/exp(-a*x);
    end;
function znach(f:trig; a,b:real; x,y:integer):real;
   begin
     if x<y then znach:=f(a,x);
     if x>=y then znach:=f(b,y);
       end;  
begin
Clrscr;
readln(y,a,b);
randomize;
for k:=1 to 4 do begin
random(x);
writeln(znach(trigon,a,b,x,y));
end;
readln;
end.
0
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
28.12.2009, 03:27  [ТС]
нет(( а куда делось Z[i]:=(cos(b*y*y)+1)/(exp(-b*y)) ??
1 решение если x[i]<y а 2 решение если больше ))
0
 Аватар для Eugeniy
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.12.2009, 03:27
Просто если вы хотите рандомом, тогда аргумент должен быть целым числом!
0
 Аватар для Eugeniy
3132 / 1325 / 156
Регистрация: 19.12.2009
Сообщений: 1,808
28.12.2009, 03:36
Постойте, если y>=x тогда выводиться то, что вы сказали!

Добавлено через 8 минут
Не понимаю, что Вас не устраивает? Может я не правильно понял задание?
0
 Аватар для Vatryshka
14 / 14 / 7
Регистрация: 24.09.2009
Сообщений: 90
29.12.2009, 10:46  [ТС]
Ну просто 2 условия if x[i]<y then Z[i]:=Sqrt(cos(a*x[i*i])+1)/exp(-a*x[i]) else
Z[i]:=(cos(b*y*y)+1)/(exp(-b*y));

Добавлено через 15 часов 5 минут
С процедурой я не правильно сделал тож

Добавлено через 2 часа 12 минут
Подскажите кто нить , как это решить)))
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.12.2009, 11:02
Vatryshka, Ты развел тягомотину на 2 страницы уже. Может хватит? Все равно никто это читать уже не будет, да никто уже и не помнит с чего все началось.
Есть конкретный вопрос, изложи его понятным языком в новой теме, может кто и посмотрит.
0
 Аватар для Dnnn
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
29.12.2009, 13:04
да, тема как-то уже неприлично раздулась.
ну пусть так будет - функция
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program n2;
var z,x:array[1..4] of real;
     a,b,y:real; i:byte;
function zzz(c, g : real):real; {g - вместо x[i] или y, c - вместо a или b}
begin
zzz := Sqrt(cos(c*g*g)+1)/exp(-c*g)
end;
 
begin
 for i:=1 to 4 do
    x[i]:=random(10-1+1)+1;
 readln(y);
 readln(a);
 readln(b);
 for i:=1 to 4 do
     if x[i]<y then 
            z[i]:=zzz(a, x[i]) 
     else  
            z[i]:=zzz(b,y);
 
   for i:=1 to 4 do
       write(z[i]:10:3,' ');
   readln;
end.
процедура
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program n2;
type arr = array[1..4] of real; 
var z,x: arr;
     a,b,y:real; i:byte;
procedure zzz(c, g : real; var res: real); {g - вместо x[i] или y, c - вместо a или b; Res - результат вычислений }
begin
 res := Sqrt(cos(c*g*g)+1)/exp(-c*g); 
end;
 
begin
 for i:=1 to 4 do
    x[i]:=random(10-1+1)+1;
 readln(y);
 readln(a);
 readln(b);
 for i:=1 to 4 do
     if x[i]<y then 
            zzz(a, x[i], z[i]) 
     else  
            zzz(b,y, z[i]);
 
   for i:=1 to 4 do
       write(z[i]:10:3,' ');
   readln;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2009, 13:04
Помогаю со студенческими работами здесь

решить с помощью уравнения окружности.
Здравствуйте. Помогите задачу решить с окружностями. Эту задачу надо решить с помощью уравнения окружности.

Найти с помощью процедуры матрицу C=A+B
2) Ввести две квадратные матрицы A и B. Ввод оформить в виде процедуры. Найти с помощью процедуры матрицу C=A+B. Вывести матрицу С на экран.

Сортировка массивов с помощью процедуры
Нужно отсортировать по убыванию несколько массивов с помощью процедуры. Помогите найти ошибку... program sort; type mass=array...

С помощью процедуры с параметром процедурного типа
Здраствуйте! Решил обратиться к вам вот по какому поводу: попробуйте, пожалуйста, решить эту громоздкую задачу, вдруг у вас всё-таки...

Найти расстояние между точками с помощью процедуры
Даны два массива x(10) и y(10). Их эллементы вычисляются с помощью формул xi=2*i+1; yi=j-3. С помощью процедуры составить массив r, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru