Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
xxxANDRUXAxxx
8 / 7 / 2
Регистрация: 10.12.2009
Сообщений: 103
1

Переделать программу.

15.06.2010, 08:38. Просмотров 381. Ответов 8
Метки нет (Все метки)

Помогите переделать программу.
Задание:
Нужно записать двухмерный массив Ann в файл.txt. Потом из .txt файла считать элементы 2 столбца массива и записать их в вектор Vn.

Заранее благодарен, тем кто поможет...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses crt;
const nmax=50;
var a:array[1..nmax,1..nmax] of integer;
    v:array[1..nmax] of integer;
    f:text;
    n,i,j,k,x:integer;
begin
clrscr;
randomize;
assign(f,'file1.txt');
rewrite(f);
repeat
write('Размер матрицы=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=random(40)+10;
     write(a[i,j]:4);
     write(f,' ',a[i,j]);
    end;
   writeln;
 end;
writeln;
reset(f);
i:=0;j:=0;k:=0;
while not eof(f) do
 begin
  read(f,x);
  j:=j+1;{считаем элементы в строке}
  if j mod n=1 then{если кончилась строка}
   begin
    i:=i+1;{новая строка}
    j:=1;{первый в строке}
   end;
  if j=n-i+1 then{если соответствует побочной}
   begin
    k:=k+1;{считаем}
    v[k]:=x;{пишем в массив}
   end;
 end;
close(f);
writeln('Побочная диагональ:');
for i:=1 to n do
write(v[i],' ');
readln
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2010, 08:38
Ответы с готовыми решениями:

Переделать программу
Написать программу: 15 декабря всемирный день чаепития по введенному году...

Необходимо переделать программу
Есть задание и готовая программа к этому заданию, но у меня другой вариант, но...

Переделать программу в функцию
Программа переводит из 10 сс в любую сс Не могу переделать в функцию: ...

как переделать программу
Помогите переделать программу используя цикл repeat Начав тренировки,...

Нужно переделать программу
Нужно переделать. Условие задачи : Сделайте, какой можете 1-С массивами ...

8
Puporev
Модератор
55464 / 42571 / 29422
Регистрация: 18.05.2008
Сообщений: 100,712
15.06.2010, 09:10 2
Совсем думать не хотим, ведь только 1 строку поправить
39. if j=2 then{если второй столбец}
0
spector_06
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 7
15.06.2010, 09:20 3
Большое спасибо=)))

Добавлено через 1 минуту
Извените а как сделать чтоб матрица записывалась в столбец а не в строчку?
0
Puporev
Модератор
55464 / 42571 / 29422
Регистрация: 18.05.2008
Сообщений: 100,712
15.06.2010, 12:07 4
Цитата Сообщение от spector_06 Посмотреть сообщение
чтоб матрица записывалась в столбец а не в строчку?
Не понял. Матрица записывается не в строчку и столбец, а в таблицу, типа
1 2 3 4
5 6 7 8
9 0 5 6
0
Andrew-007
0 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 13
15.06.2010, 12:14 5
Не не не,просто в ABC обычно выдает матрицу в строчку как вектор,если readln не поставить во втором цикле!
0
Puporev
Модератор
55464 / 42571 / 29422
Регистрация: 18.05.2008
Сообщений: 100,712
15.06.2010, 12:31 6
Andrew-007, Глупости не пиши, если не понимаешь При чем здесь Паскаль? И при чем readln?
если не написать во внешнем цикле writeln, то в любом Паскале будет вывод в строку.
0
Andrew-007
0 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 13
15.06.2010, 14:06 7
Ага,а теперь возьми и проверь!
0
greenday
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 3
16.06.2010, 16:39 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uses crt;
const nmax=50;
var a:array[1..nmax,1..nmax] of integer;
    v:array[1..nmax] of integer;
    f:text;
    n,i,j,k,x:integer;
begin
clrscr;
randomize;
assign(f,'file.txt');
rewrite(f);
repeat
write('Размер матрицы=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=random(40)+10;
     write(a[i,j]:4);
     write(f,' ',a[i,j]);
    end;
   writeln;
 end;
writeln;
reset(f);
i:=0;j:=0;k:=0;
while not eof(f) do
 begin
  read(f,x);
  j:=j+1;{считаем элементы в строке}
  if j mod n=1 then{если кончилась строка}
   begin
    i:=i+1;{новая строка}
    j:=1;{первый в строке}
   end;
  if j=n then{если соответствует побочной}
   begin
    k:=k+1;{считаем}
    v[k]:=x;{пишем в массив}
   end;
 end;
close(f);
 
writeln('Последний столбец:');
for i:=1 to n do
write(v[i],' ');
readln
end.
Добавлено через 1 минуту
помогите сделать через процедуры
0
Andrew-007
0 / 0 / 1
Регистрация: 25.05.2010
Сообщений: 13
16.06.2010, 18:06 9
Хелпните человеку!!!
0
16.06.2010, 18:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2010, 18:06

Нужно переделать программу с процедурой.
program pr1; var a:array of integer; i,j:integer; procedure...

Переделать программу под модуль
сделайте под эту прогу модуль, пожалуйста. var i,j,k:integer; a:array of...

Переделать программу с использованием процедур
Нужна срочная помощь ! Сдеалал курсовую еще неделю назад ,программа работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru