Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Форумы общей тематики » Программы (software) » Прога на Паскале
новая тема  ответить следующая тема | предыдущая тема
Автор
 
N30D - offline N30D
Arrow02-01-2004 11:39 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Прога на Паскале

Братци хелпуйте! Дали мне вчера програмку накатать вроде как маленькую, но я не могу разобраться в одном моменте. Помогите пожалуйста!
Вот само задание:
Матрица действительных чисел А размером n*n записана на диске А с именем matrfile.txt.
Не считыая матрицу в память, просмотреть элементы главной диагонали.Если диагональный элемент отрицательный то дописать в конец этого файла, а на его место записать 0. Вывести на экран информацию в виде: сначала напечатать замененые диагональные эл-ты, а затем матрицу размером n*n c заменеными диагональными элементами. Опеределить и напечатать число положит элементов в реорганизованном файле


А непонятен мне один момент:
Если диагональный элемент отрицательный то дописать в конец этого файла, а на его место записать 0.

Покажите пожалуйста как это сделать!Весь код мне не нужен только этот момент.

makcassa - offline makcassa
Smile03-01-2004 04:45 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



N30D
К Константинычу обратись. (УПК)

N30D - offline N30D
03-01-2004 06:14 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



makcassa Он сам не знает.

N30D - offline N30D
03-01-2004 10:51 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Вот сам код. что куда дописывать?что убрать? Помогите!

program lab8;
uses wincrt;
const N=5;
var
M:file of integer;
A:array [1..N,1..N] of integer; (*massive NxN*)
i,j: integer;(*peremennie*)
z:integer;
Begin
assign(M, 'C:\matrfile');
reset(M);
Randomize;
For i:=1 to N do (*zapolnenie i pechat massiva*)
begin
writeln;(*perevod stroki*)
For j:=1 to N do
begin
If odd(random(10)) (*esli sluch chisl is diap 1..10 nechet.*)
then A[i,j]:=-(random(100)) (*to v massive zapoln otric chislo*)
else A[i,j]:=(random(100)); (*else polojit iz interv 1..100*)
write(A[i,j]:4);
end;
end;


for i:=1 to n do
for j:=1 to n do
if A[i,i]<0 then A[i,i]:=0;

writeln;
writeln;
for i:=1 to N do
begin
writeln;
for j:=1 to N do write(A[i,i]:4);
end;
close(M);
end.

N30D - offline N30D
05-01-2004 07:05 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Ладно. Если кому интересно вот исходник. Как у нас говорится только больше мучился, на самом то деле фигня.

program lab8;
uses wincrt;
const n=5;
var
A:integer;
i,j,z,b:integer;
m:file of integer;
f:text;

begin
randomize;

assign(m,'C:\111.ddd'); ASSIGN(f,'c:\111.TXT');
REWRITE (F);
rewrite(m);
For i:=1 to N do begin
For j:=1 to N do
begin
A:= random(100);
A:=A-50;
write(A:4);
write(m,A);
WRITE (F,A:6);
end; writeln (f);
end;close(m);

reset(m); writeln (f);
for i:=1 to n do
for j:=1 to n do
begin
read (m,a);
if i=j then begin
if A<0 then write (f,a);
writeln (f);
end;
end;
close(M);
reset(M);

z:=0; writeln (f);
for i:=1 to n do begin
for j:=1 to n do begin
read (m,a);
if i=j then begin
if A<0 then A:=0;
write (f,a:6);
end
else begin
write(f,A:6);
if a>0 then z:=z+1;
end;
end;
writeln (f);
end;
writeln (f);
writeln (F,z);

close(M);
close(f);
end.

Текущее время: 15:05
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru