Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 11:24   #1
-Vaka-
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 1
Восклицание матрицы. ввод из файла. проблема.

подскажите, пожалуйста что нужно исправить в этой программе. мучаюсь уже неделю.
может ввод из файла неправильно записан или в самой программе лага??? и какие исходные данные должны быть в текстовом документе? может там что-то неправильно пишу??

вот задание
Выполнить над прямоугольной матрицей В размером m х n последовательность действий:
а) Заменить заданным вектором столбцы матрицы В, содержащие хотя бы один нулевой элемент;
б) в полученной матрице вычислить суммы элементов строк, номера которых задаются целочисленным вектором.

вот программа
Program Matrix;
uses crt;
const
m=5; n=4; {размерности массивов}

type range=1..n; {значения для элементов вектора не более числа столбцов}
a=array[1..m,1..n] of byte;
v=array[1..m] of range;

var f:text;
b: a;
vect: v;
i, j:integer;

procedure get_data(var f:text;var b:a; var vect:v);
var i,j: byte;
begin
assign(f,'in.txt');
reset(f);
for i:=1 to m do
for j:=1 to n do
read(f,b[i,j]);
for i:=1 to m do
read(f, vect[i]);
close(f);
end;

procedure replace_column(vect:v; var b:a);
var i,j,k: byte;
begin
for i:=1 to m do
for j:=1 to n do
if b[i,j]=0 then {если найден нулевой элемент}
for k:=1 to m do
b[k,j]:=vect[k]; {то весь j-й столбец прописываем значениями из вектора}
end;

function get_sum(b:a; vect:v):longint;
var sum: longint;
i,j: byte;
begin
sum:=0;
for i:= 1 to m do
for j:=1 to n do
sum:=sum+b[vect[i],j];
{добавляем в сумму значения элементов матрицы, номер строки которых определяется значением вектора}
get_sum:=sum
end;

procedure put_data(b:a; vect:v);
var i,j: byte;
begin
for i:=1 to m do
begin
for j:=1 to n do
write(b[i,j]:4);
writeln;
end;
writeln;
writeln('summa=',get_sum(b,vect));
end;


begin
get_data(f,b, vect);
replace_column(vect,b);
put_data(b, vect);
readln
end.
-Vaka- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод матрицы La`Fleur C++ Builder 3 07.05.2011 20:41
Проблема с чтением матрицы с txt-файла в C# Денис89 Помощь студентам 5 08.09.2010 17:40
Ввод из файла,меню,матрицы turbopascal. Amenus Помощь студентам 2 17.06.2009 22:33