Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.04.2014, 00:07   #1 (permalink)
"Программист"
Новичок
 
Регистрация: 26.03.2014
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Post Программа с несколькими процедурами, Паскаль

Помогите с задачкой

Составить программу по заданному условию. Первая часть условия является заданием на разработку процедуры П1 с параметром в виде функции f или (f1 и f2). Условие второй части задания – головного модуля — предполагает обязательное использование разработанной процедуры П1 с функцией (f или f1, f2) в качестве параметра. В качестве исходного данного в большинстве заданий используется квадратная матрица А.

Для двух массивов В и С одинаковой длины составить процедуру, формирующую массив Т, по длине совпадающий с исходными, каждый элемент которого Тk равен сумме Вi и Сi в случае, если f2(Сi) > f1(Вi) > 0. Если массив Т по длине получается меньше исходных, то он дополняется нулями.

Не понятно что требуется, запутался...

На счёт массивов понятно примерно,
B: mas = (1, 2, 4, 3, 6, 0, 2, -8, 9, -4);
C: mas = (7, 1, -3, 4, 0, -6, -7, 5, 3, 9);
примерно...
...for i:=1 to n do
Begin
if C[i] > B[i] and B[i] > 0 then Tk:=B[i]+C[i]
а дальше не понял...

Помогите пожалуйста
"Программист" вне форума   Ответить с цитированием

Старый 25.04.2014, 00:07
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что тут найдется много важного по вашему запросу

Помогите пожалуйста, очень трудная программа, Паскаль
Программа с несколькими процедурами, нисходящий способ
Программа на алгоритмическом языке Турбо Паскаль
Программа в Турбо-Паскаль 7,0
Программа на Паскаль

Старый 25.04.2014, 09:48   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 25,454
Сказал(а) спасибо: 256
Поблагодарили 476 раз(а) в 151 сообщениях
Репутация: 82625
По умолчанию

Цитата:
Сообщение от "Программист" Посмотреть сообщение
Не понятно что требуется, запутался...
Требуется задать функции f1 и f2.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 27.04.2014, 14:38   #3 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,099
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9724
По умолчанию

Если, конечно, я правильно понял:

Цитата:
const n= 10;
type Tmass= array[1..n] of integer;
function f: Tmass;
var i:byte;
arg: Tmass;
begin
Randomize;
for i:=1 to n do
arg[i]:= Random(15)-5;
f:=arg;
end;
procedure Formir(var T: Tmass);
var A,B: Tmass;
i,e: byte;
begin
A:= f;
B:= f;
e:=1;
for i:=1 to n do
if (A[1]> B[i]) and ( B[i]>0) then begin
T[e]:= A[i]+B[i];
Inc(e);
end;
if e<n then
for i:=e to n do
T[i]:=0;
end;
var T: Tmass;
i: byte;
begin
Formir(T);
for i:=1 to n do
Write(T[i]:4);
Readln;
end.
Евгений вне форума   Ответить с цитированием
Старый 28.04.2014, 02:19   #4 (permalink)
"Программист"
Новичок
 
Регистрация: 26.03.2014
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

можно без рандомиза? и что это?
ещё с двумя функциями надо, я не понимаю вообще как делать.
"Программист" вне форума   Ответить с цитированием
Старый 28.04.2014, 02:59   #5 (permalink)
Madara
Member
 
Регистрация: 29.11.2013
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Randomize - это счётчик случайных чисел, то-есть он выдаёт случайные числа в заданном диапазоне.

PHP код:
const n10;

type Tmass= array[1..nof integer;

function 
f1Tmass;
var 
i:byte;
argTmass;
begin
arg
[1]:=1arg[2]:=2arg[3]:=3arg[4]:=4arg[5]:=5arg[6]:=-3arg[7]:=3arg[8]:=3arg[9]:=3arg[10]:=3
f1:=arg;
end;

function 
f2Tmass;
var 
i:byte;
argTmass;
begin
arg
[1]:=2arg[2]:=4arg[3]:=6arg[4]:=9arg[5]:=0arg[6]:=4arg[7]:=2arg[8]:=3arg[9]:=3arg[10]:=6
f2:=arg;
end;

procedure Formir(var TTmass);                      
var 
C,BTmass;                          
i,kbyte;                                    
begin                                            
B
:= f1;                                        
C:= f2;                                                    
k:=1;                                                          
for 
i:=1 to n do                                                    
if (
C[i] > B[i]) and ( B[i]>0then                                                
begin                                                              
T
[k]:= C[i]+B[i];                                                             
Inc(k);                                                        
end;                                                       
if 
k<n then                                                             
for i:=k to n do                                                                          
T[i]:=0;                                                              
end;

var 
TTmass;
ibyte;

begin
Writeln
('Rezultat slozheniya B i C pri Ci>Bi>0 :');
Writeln;
Formir(T);
for 
i:=1 to n do
Write(T[i]:4);
end
Вот, держи. Кое-что поправил тут, если ты так хочешь прямо по заданию (T[k] и 2 функции...)
Только не суди строго, я сам горе-программист.
Madara вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:47.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.