IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Двумерные массивы., Помогите исправить ошибки.
Carola
сообщение 24.12.2005 21:38
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Исправьте пожалуйста ошибки в прогах,если они есть.
У меня не работает паскаль и я буду очень признательна,если кто-нибудь закинет мне в него проги и даст ссылочки.ПЛЗ!

1. Дан 2-х мерный массив, поменять местами указанные столбцы.
2. Дан 2-х мерный квадратный массив. требуется вывести на экран строку чисел, но не по порядку, а по змейке. см. пример: массив
1 2 3
4 5 6
7 8 9
результат вывода на экран
1 2 3 6 9 8 7 4 5

Препод написал,что они у него не запускаются.

Первая.
 const
n = 3;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3),
(4, 5, 6),
(7, 8, 9));

var
i, j: integer;
first, second: integer;
T: integer;

begin
{ Stolbez s nomerom First pomeniat' mestami so stolbzom s nomerom Second }
first := 1; second := 2;

writeln('Do:');
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;

for i := 1 to n do begin
T := a[i, first];
a[i, first] := a[i, second];
a[i, second] := T;
end;

writeln('Posle:');

for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;

end.



Вторая.

 const
n = 3;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3),
(4, 5, 6),
(7, 8, 9));

var
steps: array[1 .. 2*n - 1] of byte;

var
i, j, ii, jj: integer;

begin
j := 0;
for i := 2*n-1 downto 1 do begin
if odd(i) then inc(j);
steps[i] := j
end;

j := 0;
ii := 1; jj := 0;
repeat

if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
inc(jj); write(a[ii, jj]:5);
end;
end;

if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
inc(ii); write(a[ii, jj]:5);
end;
end;

if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
dec(jj); write(a[ii, jj]:5);
end;
end;

if j < 2*n-1 then begin
inc(j);
for i := 1 to steps[j] do begin
dec(ii); write(a[ii, jj]:5);
end;
end;

until j = (2*n - 1);
writeln;

end.



Сообщение отредактировано: Carola - 24.12.2005 23:34


--------------------
°in the game of seduction, there is only one rule:never fall in love°
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 24.12.2005 22:11
Сообщение #2


Гость






Carola, так как эти решения писал я здесь:
Двумерный массив. Две задачи, то могу тебя уверить, что если бы они не запускались, я бы их не выложил... Вот лог работы первой программы:
Цитата
Turbo Pascal Version 7.0 Copyright © 1983,92 Borland International
До:
1 2 3
4 5 6
7 8 9
После:
2 1 3
5 4 6
8 7 9


А вот - для второй:
Цитата
Turbo Pascal Version 7.0 Copyright © 1983,92 Borland International
1 2 3 6 9 8 7 4 5


Я не знаю, что нужно преподавателю, но они обе прекрасно работают...
 К началу страницы 
+ Ответить 
Carola
сообщение 24.12.2005 22:23
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Я в тебе не сомневалась даже.....Наверное это всё паскаль...Что-то с ним не то..с ошибкой у меня=(
Ты не мог бы закинуть мне в Паскаль...Очень прошу.

А вот ещё одна задача.
Препод по ней написал вот что - *меня не устраивает алгоритм с применением EXIT. это
противоречит канонам программирования.* mega_chok.gif

Ввести размерность матрицы(двумерной) и значения ее элементов., Построить вектор В, где В(i) -

задание 1. количество простых чисел в i+1 -ой строке.
(записать числа в вектор и выдать на экран)

 
Const
maxcount=100;
type
vec = array[1..maxcount] of Integer;
matrix = array[1..20,1..20] of integer;

function isPrime(X: integer): boolean;
var
i: integer;
Begin
isPrime:=false;
for i:=2 to trunc(sqrt(x)) do if x mod i = 0 then Exit;
isPrime:=true
End;
(* Postrochniy vvod matrizi *)
Procedure ReadMatr(var A:Matrix; var n,m:integer );
var
i,j:word;
begin
repeat
write('‚Vvedite kolichestvo slov: '); readln(N)
until (N>0) and (N<=sqrt(maxcount));
repeat
write('‚Vvedite kolichestvo stolbzov: '); readln(m)
until (M>0) and (M<=sqrt(maxcount));
For i:=1 to n do begin
For j:=1 to m do begin
write('A[',i,j,']= ');
readln(A[i,j])
end
end
end;





procedure vecprint (a:vec; n:integer);
var i:integer;
begin
writeln('prime int:');
for i:=1 to n do write(a[i],' | ')
end;

procedure getprime(a:matrix; n,m:integer; var b:vec; var nn:integer);
var i,j,s:integer;
begin
nn:=0;
for i:=1 to n -1 do begin
s:=0;
for j:=1 to m do if isprime(a[i+1,j]) then inc(s);
inc(nn);
b[nn]:=s
end
end;

var
a:matrix;
b:vec;
m,n,nn:integer;
begin
Readmatr(a,n,m);
getprime(a,n,m,b,nn);
vecprint(b,nn);
readln;
end.




П.с. Обнаружила что у нас Дни Рождения рядом=)У меня 3-го мая. give_rose.gif

Сообщение отредактировано: Carola - 24.12.2005 23:40


--------------------
°in the game of seduction, there is only one rule:never fall in love°
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 14:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"