Pascal массив

Ответить
albanec
Сообщения: 3
Зарегистрирован: 01 май 2008, 13:34

01 май 2008, 13:37

Дан двумерный массив nxm, заполненный с клавиатуры. Затем вводим число К и из всех чисел двумерного массива больших К сформировать одномерный массив.
Например:
2 3 5 7 2
1 6 2 3 2 - двумерный массив,
2 5 9 2 1

вводим число к=4 и получаем одномерный массив - 5 7 6 5 9
Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

01 май 2008, 13:53

[syntax='Pascal']
Program lalala;
Const MaxM=100; MaxN=100;
Type Arr=Array[1..MaxM*MaxN] Of Integer;
Var Q1,Q2,I,K:Integer;A,B:Arr;
Begin
Writeln('Enter height and width:');
Readln(Q1,Q2);
Writeln('Enter array:');
For i:=1 to Q1*Q2 Do
Read(A);
Writeln('Enter K:');
Read(K);
C:=1;
For I:=1 to Q1*Q2 Do
If A>K Then
Begin
B[C]:=A;
Inc(C);
End;
For I:=1 To (C-1) Do
write(B,' ');
Readln;
End.
[/syntax]
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
Vovchik
Сообщения: 190
Зарегистрирован: 28 фев 2008, 18:32
Контактная информация:

01 май 2008, 16:29

Medved, ето вы на Делфи написали ?
Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

01 май 2008, 16:49

Нет, это я на паскале написал просто выделил как делфи чтобы цвета нормальные были. Так понятней?
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
Аватара пользователя
un4-funeral
Сообщения: 58
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

01 май 2008, 20:31

C нигде не объявлено ((=
Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

01 май 2008, 21:06

Я без компилятора писал=)
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
Аватара пользователя
un4-funeral
Сообщения: 58
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

02 май 2008, 00:28

похвально (((:
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

03 май 2008, 00:47

un4-funeral писал(а):C нигде не объявлено ((=

*голосом старого маразматика* Эх, поживете ждесь ш наше - так и наушитесь беж компилятора такое жамещать и ишправлячь!
А вообще-то - я в подобных задачах всегда пользуюсь неписанным "сводом программистской попсы". Чаще всего в моих кодах i,j,k - целые, f - текстовый файл, s - строка, A (B) или mas - массивы (если оные упоминаются в задаче), M и N - размерности массива, count - счетчик. Так что эту задачу, если бы ее до меня не разложил по полочкам Medved, я бы написал не более чем так:

Код: Выделить всё

for i:=1 to M do
for j:=1 to N do
  if A[i,j]>k then 
  begin  
       B[count]:=A[i,j];
       inc(count);
  end;
Кстати, решение Medved абсолютно правильное с точки зрения компилятора и распределения памяти, но препод может придраться, что у него описан одномерный массив вместо двухмерного, хотя для компа это совршенно равнозначно.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить