Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите решить!!!

11K
04 мая 2006 года
denamer
19 / / 20.02.2006
Задача.
Заполнить с клавиатуры матрицу, в которой 10 столбцов и 5 строк. (1 вариант) Найти и выделить цветом строку с наибольшей суммой.
(2 вариант) Найти и выделить цветом столбец с наибольшей суммой.

Помогите, пожалуйста, решить вторую часть задачи!
Для введения с клавиатуры 10 столбцов и 5 строчек я программу написал, а вот как найти строку с наибольшей суммой!?
***
Код:
Uses crt;
var
a: array[1..20,1..20] of integer;
s,x,y: integer;
begin
clrscr;
    for x:=1 to 10 do
    for y:=1 to 5 do
    begin
    write('stolbets',x,'; stroka',y,'=');
    readln(a[x,y]);
    end;
clrscr;
textcolor(10);
        for x:=1 to 10 do
        for y:=1 to 5 do
        begin
        gotoxy(x*4,y);
        write(a[x,y]);
        end;

***
Здесь надо вставить следующую часть задачи...
***

readkey;
end.

***
ПОМОГИТЕ ПОЖАЛУЙСТА! СРОЧНО!!!
1.8K
04 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
***
clrscr;
for x:=1 to 10 do
for y:=1 to 5 do
begin
write('stolbets',x,'; stroka',y,'=');
readln(a[x,y]);
end;
clrscr;
textcolor(10);
for x:=1 to 10 do
for y:=1 to 5 do
begin
gotoxy(x*4,y);
write(a[x,y]);
end;
***


А не проще random-ом воспользоваться?

Код:
clrscr;
 randomize;
 for y:=1 to 5 do
  begin
   for x:=1 to 10 do
    begin
     a[x,y]:=random(10);
     write(a[x,y]:4);
    end;
   writeln;
  end;
 readkey;


а ето собсна то, что нужно для 1-го и 2-го варианта:
Код:
procedure pfind;
begin
 n:=1;
 for y:=1 to 5 do
  begin
   b[y]:=0;
   for x:=1 to 10 do
    begin
     inc(b[y],a[x,y]);
     inc(c[x],a[y,x]);
    end;
   if y<>1 then if b[y]>b[n] then n:=y;
  end;
 m:=1;
 for x:=2 to 10 do if c[x]>c[m] then m:=x;
 for y:=1 to 5 do
  begin
   if y=n then textcolor(red) else textcolor(lightgray);
   for x:=1 to 10 do
    begin
     if x=m then textcolor(red) else if y<>n then textcolor(lightgray);
     write(a[x,y]:4);
    end;
   writeln;
  end;
end;


Вот тебе еще и вар:
 
Код:
a: array[1..10,1..5] of integer;
 b: array[1..5] of integer;
 c: array[1..10] of integer;
 x,y,n,m: integer;
242
04 мая 2006 года
Оlga
2.2K / / 04.02.2006
Самое правильное, на мой взгляд, пройдись по первой строке и вычисли ее сумму в переменную max_sum, а в переменной row сохраняeшь индекс строки(изначально равный 1). Затем организуй цикл для обхода всех остальных строк:
1 - прошел строку, вычислил по ходу sum ее переменных
2 - сравниваешь max_sum с sum
 
Код:
if max_sum < sum then
begin
 max_sum := sum;
 row = currentrow;
end;

3 - возращаемся к 1 этапу

после оканчания цикла в row у тебя будет номер нужной строки
242
04 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by denamer
Задача.
Заполнить с клавиатуры матрицу, [COLOR=orangered]в которой 10 столбцов и 5 строк.[/color]


и у тебя на мой взгляд явная ошибка, то что ты в цикле перепутал кол-во строк с кол-вом столбцев:

 
Код:
[COLOR=orangered]for x:=1 to 10 do
  for y:=1 to 5 do[/color]
   begin
    write('stolbets',x,'; stroka',y,'=');
    readln(a[x,y]);
   end;

нужно:
 
Код:
[COLOR=orangered]
for x:=1 to 5 do
  for y:=1 to 10 do[/color]
   begin
    write('stolbets',x,'; stroka',y,'=');
    readln(a[x,y]);
   end;


242
04 мая 2006 года
Оlga
2.2K / / 04.02.2006
{если хотим исследовать массив по строкам}
 
Код:
for indexrow := 1 to N do
  for indexcolumn := 1 to M do
    A[indexrow,indexcolumn] := 10;{for example}


если хотим исследовать массив по столбцам
 
Код:
for indexcolumn := 1 to M do
  for indexrow := 1 to N do
    A[indexrow,indexcolumn] := 10;{for example}
11K
05 мая 2006 года
denamer
19 / / 20.02.2006
LastSoul и OlgaKr!!!
Спасибо огромное за помощь!
***
LastSoul!
Датчик случайных чисел легче, но препод акцентировал своё внимание, что в этой задаче нужно ввести числа самому, то бишь с клавиатуры! Поэтому и программа получилась соответствующая!
***
OlgaKr!
Наш препод заключил снами договорённость, что первое значение - это количество столбцов, а второе - строк!
Поэтому a[x,y]=a[1..10,1..5] значит, что в массиве 10 столбцов и 5 строчек!!!
***
Ещё раз спасибо!
Я очень ценю вашу благородность!!!
242
05 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by denamer
LastSoul и OlgaKr!!!
OlgaKr!
Наш препод заключил снами договорённость, что первое значение - это количество столбцов, а второе - строк!
Поэтому a[x,y]=a[1..10,1..5] значит, что в массиве 10 столбцов и 5 строчек!!!
***



не сочти тупой :), а поподробней о договоре можно? а то звучит странно, вроде у нас договор: "что день это ночь, а ночь день".
если надо работать со столбцами пусть так и говорит

p.s.
Поэтому a[x,y]=a[1..10,1..5] значит, что в массиве 10 строчек и 5 столбцов i ne inache, ili v Rossii drugie zakony :)

11K
05 мая 2006 года
denamer
19 / / 20.02.2006
Не знаю, можно ли сравнивать это с таким законом, как день и ночь!!!
Но ты тоже меня не сочти тупым!
***
Ладно, а почему у меня в Pascale он печатает 10 столбцов и 5 строк, когда я задаю массив a[x,y]=a[1..10,1..5]! Серьёзно!!!
Почему?!!!
1.8K
05 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by denamer
Ладно, а почему у меня в Pascale он печатает 10 столбцов и 5 строк, когда я задаю массив a[x,y]=a[1..10,1..5]!


Потомучто:

 
Код:
for y:=1 to 5 do
 for x:=1 to 10 do

А не:
 
Код:
for x:=1 to 10 do
 for y:=1 to 5 do

OlgaKr насчет этого уже писала...
242
05 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by denamer
Не знаю, можно ли сравнивать это с таким законом, как день и ночь!!!
Но ты тоже меня не сочти тупым!
***
Ладно, а почему у меня в Pascale он печатает 10 столбцов и 5 строк, когда я задаю массив a[x,y]=a[1..10,1..5]! Серьёзно!!!
Почему?!!!



Честно? не знаю :). Паскаль не учила, но в общем в любом языке, с которым знакома, нет проблем организовать печать массива таким образом (т.е. чтобы столбцы печатать как строки, и строки как столбцы )
Это код печати массива? :

 
Код:
for x:=1 to 10 do
        for y:=1 to 5 do
        begin
        gotoxy(x*4,y);
        write(a[x,y]);
        end;


Незнакома с функцией gotoxy(x*4,y);, может она это и организует. Если кто то знает, объясните пожалуйста предназначение этой функции.
1.8K
06 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Незнакома с функцией gotoxy(col,row);, может она это и организует. Если кто то знает, объясните пожалуйста предназначение этой функции.


Эта функция устанавливает курсор в какую-то позицию какой-то строки на экране, например: gotoxy(20,10) установит курсор в 20-ю позицию 10-й строки (отсчет начинается с 1). Всего: 25 строк по 80 позиций.

Раз уж заговорили как устанавливать курсор в какую-то позицию какой-то строки, то:
WhereY - Узнает в какой строке находиться курсор
WhereX - Узнает в какой позиции находиться курсор

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог