Есть тут программеры? =)
Модератор: chinaski
Есть тут программеры? =)
ААА, завтра зачот, мозги не варят после инженерки никак!. Помогите составить программу на ПАСКАЛЕ.Используя процедуру решить след. задачу :
1.дан массив В(10,10). Необходимо вывести массив Х(10), каждый элемент которого равен разности максимума i-той строки и минимума этой строки, деленной на 10.
т.е. X[1]=(max(i)-min(i))/10 и т.д.
2. Решить используя процедуру без глобальной переменной. Даны 3 матрицы A,B,C 10х10. Необходимо вычислить A1=maxA строки, B1=maxB строки и С1=maxC. A1[1..10] ,B1[1..10], C1[1..10] соответственно. затем вычислить D=A1+B1+C1.
1.дан массив В(10,10). Необходимо вывести массив Х(10), каждый элемент которого равен разности максимума i-той строки и минимума этой строки, деленной на 10.
т.е. X[1]=(max(i)-min(i))/10 и т.д.
2. Решить используя процедуру без глобальной переменной. Даны 3 матрицы A,B,C 10х10. Необходимо вычислить A1=maxA строки, B1=maxB строки и С1=maxC. A1[1..10] ,B1[1..10], C1[1..10] соответственно. затем вычислить D=A1+B1+C1.
First Act USA Custom Shop Lola '2007 -> korg pitchblack -> mooer yellow comp ->echoplex delay -> tc sub'n'up -> kartakou warmer -> xotic sl drive -> tc flashback delay -> tc ditto -> Laney Cub 12R / Orange Dual Terror
ну дык и выложил тут ибо задачи не сложные, но все равно морда падает на стол, не решается никак 
First Act USA Custom Shop Lola '2007 -> korg pitchblack -> mooer yellow comp ->echoplex delay -> tc sub'n'up -> kartakou warmer -> xotic sl drive -> tc flashback delay -> tc ditto -> Laney Cub 12R / Orange Dual Terror
- MishkaZ
- Бывалый
- Сообщения: 285
- Зарегистрирован: Пн июл 31, 2006 3:28 am
- Откуда: Minsk
- Контактная информация:
Re: Есть тут программеры? =)
Друг, звыняй, паскаль уже сто лет в глаза не видел, могут быть абшибки, патамушта в блокноте писал.
Вот это первая задачка
Вот это вторая.
В общем ничего не тестировалось. Чуть что гитарбаевцы все поправят. Если пришлешь мне на почту паскаль (желательно без вирусов), то могу потестить ибо на паскале последний раз что-то писал году в 1999м. Что-то могу соврать взяв из Delphi - там чуть попривольней можно обращаться с переменными и т.п.
Успехов.
Вот это первая задачка
Код: Выделить всё
procedure Write1(a: array of integer);
var
i: integer;
maxV, minV: integer;
resultArr: array[10] of integer;
procedure GetMaxMin(tempArr: array of integer; var maxValue: integer; var minValue: integer);
var
i: integer;
begin
maxValue = tempArr[0];
minValue = tempArr[0];
for i := 1 to 9 do
begin
if tempArr[i] > maxValue then
maxValue := tempArr[i];
if tempArr[i] < minValue then
minValue := tempArr[i];
end;
end;
begin
for i:= 0 to 10 do
begin
GetMaxMin(a[i], maxV, minV);
resultArr[i] := (maxV - minV) div 10; //если надо нецелочисленно, то поменять тип массива
{ //если надо вывести то вместо предыдущей строчки пишем прямо вывод, и массив объявлять не надо
Writeln((maxV - minV) div 10);
}
end;
end;Код: Выделить всё
// В принципе та же идея, понадобится модификация процедуры из предыдущей
// задачи для поиска максимума и минимума. Если я тебя правильно понял,
// должно получиться что-то вроде
procedure Write2(a, b, c: array of integer; var d: array of integer);
var
i: integer;
function GetMax(tempArr: array of integer; strNo: integer): integer;
var
i: integer;
val: integer;
begin
val := tempArr[0; strNo];
for i := 1 to 9 do
if val < tempArr[i; strNo] then
val := tempArr[0; strNo];
result := val;
// или так как указано ниже - не помню, бо последний раз
// юзал Delphi, там немного подругому.
// GetMax := val;
end;
begin
for i := 0 to 9 do
d[i] := GetMax(a, i) + GetMax(b, i) + GetMax(c, i);
end;В общем ничего не тестировалось. Чуть что гитарбаевцы все поправят. Если пришлешь мне на почту паскаль (желательно без вирусов), то могу потестить ибо на паскале последний раз что-то писал году в 1999м. Что-то могу соврать взяв из Delphi - там чуть попривольней можно обращаться с переменными и т.п.
Успехов.
Спасибо большущее!! 
Тему можно закрывать. Суть не в ошибках, а в самом ходе построения проги.
Тему можно закрывать. Суть не в ошибках, а в самом ходе построения проги.
First Act USA Custom Shop Lola '2007 -> korg pitchblack -> mooer yellow comp ->echoplex delay -> tc sub'n'up -> kartakou warmer -> xotic sl drive -> tc flashback delay -> tc ditto -> Laney Cub 12R / Orange Dual Terror
первую прогу я написал так :
но оно выдавало ошибку типов. Там в процедуре массив одномерный, а нужен двумерный. поэтому там вначалае нужно както через типы объявлять было.....
Короче я зачот сдал! =) Все гуд.
Код: Выделить всё
uses crt;
var B:array[1..10,1..10] of integer;
i,j:byte;
max,min,maxB,minB:integer;
procedure maxmin(var m:real;n:real;x:array of real;K:array of integer);
begin
i:=1;
j:=1;
max:=0;
min:=10000;
for i:=1 to 10 do
for j:=1 to 10 do
if K[i,j]>max then max:=K[i,j] ;
if K[i,j]<min then min:=K[i,j];
end;
x[i]:=(max-min)/10;
writeln('X',i,'=',x[i]);
end;
m:=max;
n:=min;
begin
randomize;
clrscr;
for i:=1 to 10 do
for j:=1 to 10 do B[i,j]:=random(20);
for i:=1 to 10 do begin
for j:=1 to 10 do write( B[i, j]:3);
writeln; writeln;
end;
maxmin(maxB,minB,x,B);
writeln(X);
readln;
end.
Короче я зачот сдал! =) Все гуд.
First Act USA Custom Shop Lola '2007 -> korg pitchblack -> mooer yellow comp ->echoplex delay -> tc sub'n'up -> kartakou warmer -> xotic sl drive -> tc flashback delay -> tc ditto -> Laney Cub 12R / Orange Dual Terror
- MishkaZ
- Бывалый
- Сообщения: 285
- Зарегистрирован: Пн июл 31, 2006 3:28 am
- Откуда: Minsk
- Контактная информация:
Поздравляю. Рад если чем-то помог.
ЗЫ: Это, если будешь в дальнейшем сталкиваться с поиском максимума/мнинмума в массиве - строчки типа min = 1000 и макс = 0 не пойдут. Прикинь у нас все числа отрицательные или больше 1000 - возникнет лажа с максимумом или минимумом. Лучший вариант максимуму и минимуму присвоить значение первого элемента массива, заодно уменьшив число итераций на 1.
ЗЫ: Это, если будешь в дальнейшем сталкиваться с поиском максимума/мнинмума в массиве - строчки типа min = 1000 и макс = 0 не пойдут. Прикинь у нас все числа отрицательные или больше 1000 - возникнет лажа с максимумом или минимумом. Лучший вариант максимуму и минимуму присвоить значение первого элемента массива, заодно уменьшив число итераций на 1.
