Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Массивы

Автор: Nalis 15.06.2007 16:17

Нужно разобраться в одной программке-
Дан массив С(6,6). Определить количество «особых» элементов массива, считая элемент «особым», если в его строке слева от него находятся элементы меньше него, а справа - больше.
Начало есть,.но как посчитать без понятия nea.gif

Program 1;
uses crt;

const
size_row = 6;
size_col = 6;

type
trow = array[1 .. size_row] of integer;
tmatrix = array[1 .. size_col] of trow;

procedure swap_cols(var mx: tmatrix;
const i, j: integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;

procedure print(var mx: tmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
begin
for j := 1 to size_col do
write(mx[j][i]:4);
writeln
end;
end;

var
mx : tmatrix;
i, j : integer;
n, z : integer;
t : text;
r: array [1..500] of Real;
s: Real;
ArrayOfInteger: Array [1..100, 1..100] of Integer;

begin
clrscr;
n := 0;
assign (t, 'input.txt');
reset (t);
for i := 1 to size_col do
for j := 1 to size_row do
read (t, mx[i][j]);
close (t);



writeln ;
writeln('ishodn. matrica:');
print(mx);

Автор: Ozzя 15.06.2007 16:25

http://forum.pascal.net.ru/index.php?showtopic=1482&st=0&p=12303&#entry12303

Автор: volvo 15.06.2007 16:44

Цитата
Начало есть
Начни заново... Компилятор споткнется уже на ПЕРВОЙ строке !!!

Автор: Nalis 15.06.2007 23:03

Цитата(volvo @ 15.06.2007 13:44) *

Начни заново... Компилятор споткнется уже на ПЕРВОЙ строке !!!

Это начало я взял из практически аналогичной программки....только вторую часть хз как сделать mega_chok.gif

Автор: volvo 15.06.2007 23:25

Я еще раз говорю: ты добавил первой строку, которая не будет компилироваться - нажми на F9 и убедись... Кроме этого - та программа, откуда ты скопировал начало была предназначена для быстрого обмена местами столбцов матрицы, тебе это не нужно - так что начинай заново, чтоб не было потом мучительно больно, когда твою программу "зарубят"...

А основной цикл будет таким:

count := 0;
for i := 1 to 6 do begin
for j := 1 to 6 do begin
ok := true;
for k := 1 to j - 1 do ok := ok and (mx[i, k] < mx[i, j]);
for k := j + 1 to 6 do ok := ok and (mx[i, j] < mx[i, k]);

if ok then inc(count);
end;
end;


Автор: Nalis 17.06.2007 16:18

Цитата(volvo @ 15.06.2007 20:25) *

Я еще раз говорю: ты добавил первой строку, которая не будет компилироваться - нажми на F9 и убедись... Кроме этого - та программа, откуда ты скопировал начало была предназначена для быстрого обмена местами столбцов матрицы, тебе это не нужно - так что начинай заново, чтоб не было потом мучительно больно, когда твою программу "зарубят"...

А основной цикл будет таким:
count := 0;
for i := 1 to 6 do begin
for j := 1 to 6 do begin
ok := true;
for k := 1 to j - 1 do ok := ok and (mx[i, k] < mx[i, j]);
for k := j + 1 to 6 do ok := ok and (mx[i, j] < mx[i, k]);

if ok then inc(count);
end;
end;



Блин вот придираетесь то)))Да понял я, что программку назвал неправильно) Program topik; пускай будит wink.gif Плиииз напишите завтра уже сдавать сразу 2 проги)

Автор: мисс_граффити 17.06.2007 16:50

а где ж ты весь семестр был?... злые люди к паскалю не подпускали?
лично я не считаю фразу "завтра сдавать" поводом делать все за тебя... тем более что основную часть уже дали.

З.Ы. Извините за грубость. Просто уже надоело одно и то же везде.

Автор: Nalis 17.06.2007 17:03

Цитата(мисс_граффити @ 17.06.2007 13:50) *

а где ж ты весь семестр был?... злые люди к паскалю не подпускали?
лично я не считаю фразу "завтра сдавать" поводом делать все за тебя... тем более что основную часть уже дали.

З.Ы. Извините за грубость. Просто уже надоело одно и то же везде.

Злые люди подпускали к паскалю, но разобраться в нём так и не удалось)Благо что паскаль в этом семестре заканчивается и я думаю больше к вам не обращусь))Вот тем более основную часть вы мне дали, так что грех не докончить начатое, не правда ли? give_rose.gif