• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа с несколькими процедурами, Паскаль

Регистрация
26 Мар 2014
Сообщения
10
Реакции
0
Баллы
0
Программа с несколькими процедурами, Паскаль

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

Составить программу по заданному условию. Первая часть условия является заданием на разработку процедуры П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 > B and B > 0 then Tk:=B+C
а дальше не понял...

Помогите пожалуйста tehno036
 
Если, конечно, я правильно понял:

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:= 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) and ( B>0) then begin
T[e]:= A+B;
Inc(e);
end;
if e<n then
for i:=e to n do
T:=0;
end;
var T: Tmass;
i: byte;
begin
Formir(T);
for i:=1 to n do
Write(T:4);
Readln;
end.
 
можно без рандомиза? и что это?
ещё с двумя функциями надо, я не понимаю вообще как делать.
 
Randomize - это счётчик случайных чисел, то-есть он выдаёт случайные числа в заданном диапазоне.

PHP:
const n= 10;

type Tmass= array[1..n] of integer;

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

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

procedure Formir(var T: Tmass);                      
var C,B: Tmass;                          
i,k: byte;                                    
begin                                            
B:= f1;                                        
C:= f2;                                                    
k:=1;                                                          
for i:=1 to n do                                                    
if (C[i] > B[i]) and ( B[i]>0) then                                                
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 T: Tmass;
i: byte;

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 функции...)
Только не суди строго, я сам горе-программист.:bsod:
 
Назад
Сверху