![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
org777 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Такая проблема: есть 2 задачи, выложенные в фотках внизу. Текст вроде написал... но не хочет работать =(((
Помогите, укажите на мои ошибки пожалуйста и подскажите, как правильно все это сделать. Заранее благоадрен. ![]() Program var13;
type ar=array[1..100] of integer;
var m,z,j,n1:integer;
b:ar;
a1:array[1..100] of integer;
procedure sort(n:integer; var a:ar);
var k,i,t:integer;
begin
for i:=1 to n do read (a[i]);
for k:=1 to n-1 do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
end;
begin
writeln('vvedite kol-vo el-ov v stroke: ');
readln(n1);
writeln('vvedite kol-vo strok: ');
readln(z);
for m:=1 to z do
begin
writeln('vvedite stroku: ');
sort(n1,b);
for j:=1 to n1 do
a1[m,j]:=b[j];
end;
writeln('massiv: ');
for m:=1 to z do
begin
for j:=1 to n1 do
write(a1[m,j],' ');
writeln;
end;
end.
![]() Program var25;
const n=0;
type ar=array[1..100,1..100] of integer;
var s,m,z,j,n1,m1:integer;
b,c:ar;
procedure init(var a:ar);
var i:integer;
function max(a:ar):integer;
var i,max1:integer;
function min(a:ar):integer;
var i,min1:integer;
begin
write('vvedite chislo: ');
readln(n1);
randomize;
for i:=1 to n1 do
begin
for j:=1 to m1 do
begin
a[i,j]:=random(100)-random(100);
write(a[i,j]:8);
end;
write;writeln;
end;
for i:=1 to n do
begin
for j:=1 to m do
readln(a[i,j]);
end;
begin
max1:=a[1,1];
for i:=2 to n do
if a[i,j]>max1 then max1:=a[i,j];
max:=max1;
end;
begin
min1:=a[1,1];
for i:=2 to n do
if a[i,j]<min1 then min1:=a[i,j];
min:=min1;
end;
begin
writeln('kol-vo el-ov v stolbce: ',n);
writeln('vvedite kol-vo stolbcov: ');
readln(z);
for m:=1 to z do
begin
init(b);
c[n1,m1]:=min(b);
end;
s:=max(c);
writeln('max= ',s);
readln;
end.
-------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот тут:
for k:=1 to n-1 do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
- ты, во-первых, сортируешь по возрастанию, а во-вторых - неправильно. Вот как-то так попробуй: for k:=2 to n do for i:=k downto 2 do if a[i]>a[i-1] then begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
А вообще загляни в FAQ, там есть все про сортировку.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
org777 |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Не выходит... =(
-------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Не выходит... =( Обожаю я "народный фольклор". Вот есть в нем что-то такое таинственное, зовущее за собой! Вот придет народ, скажет: "замолаживает.." - и сразу все так становится несказанно обворожительно.. Будто к вековечному кладезю мудрости прикоснулся. И не надо слов - одни чувства! Чувствуется величие, фундаментальность, основательность.. Вы только вслушайтесь:Не выходит... =( Ведь целая поэма, а?? Вслушайтесь только - ведь сразу все ясно! Ясно, что вот, наверное, вошло.. а вот - не выходит! Где не выходит, что не выходит - это же не важно в конце концов - ну что вы мелочитесь?? Не выходит... =( - и сразу затихают бури, спят моря, вырастает заря до небес.. Не выходит... =( - и смятение чувств преполняет чашу океанов земных,Не выходит... =( - больше нетгоря, боли, несбывшихся мечт, два слова только:Не выходит... =( - да и не два даже, а всего полтора:Не выходит... =( - и все, ВСЕ сказано!!Где, что не выходит - гадайте сами. То ли каменный цветок, а то ли еще чего. Ну вас ваще.. Не приставайте ко мне вашими мелочами в моей нирване. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
org777 |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Lapp, в тебе живет душа поэта
![]() А по теме: то, что ты мне посоветовал и не выходит... -------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
Ozzя |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А по теме: то, что ты мне посоветовал и не выходит... Так что именно не выходит-то? Сортирует, не сортирует, вообще не компилируется? |
org777 |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Вообще не компилируется
-------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вообще не компилируется О! Партизан заговорил! ![]() Ты пойми, что отсутствием информации по тому, что именно происходит, ты сам себе мешаешь. Думаешь, все сразу бросились компилировать твой код? Я глянул, увидел ошибку в сортировке, исправил (правда, у меня там ошибочка - знаки попутал)) - откуда мне знать, что она не компилируется? Кстати, пиши, какую именно ошибку выдает и в какой строке.. По делу.. У тебя массив a1 описан одномерным, а используешь ты его как двумерный. И зачем ты вводишь саму строку в процедуре? Она должна только сортировать. Короче, вот. И обрати внимание на правильное форматирование и постарайся его придерживаться. Program var13;
type
ar=array[1..100] of integer;
var
m,z,i,n1:integer;
a1:array[1..100] of ar;
procedure sort(n:integer; var a:ar);
var
k,i,t:integer;
begin
for k:=2 to n do for i:=k downto 2 do if a[i]>a[i-1] then begin
t:=a[i];
a[i]:=a[i-1];
a[i-1]:=t;
end;
end;
begin
writeln('vvedite kol-vo el-ov v stroke: ');
readln(n1);
writeln('vvedite kol-vo strok: ');
readln(z);
for m:=1 to z do begin
writeln('vvedite stroku: ');
for i:=1 to n1 do read (a1[m,i]);
sort(n1,a1[m]);
end;
writeln('massiv: ');
for m:=1 to z do begin
for i:=1 to n1 do write(a1[m,i]:4);
writeln;
end;
end.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
org777 |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
О! Партизан заговорил! ![]() Извиняюсь ![]() ![]() За задачку спасибо большое! А вот что со 2 неверно? Я ее сделал, она у меня компилировалась, но матрицу приходилось вводить вручную, и это преподу не понравилось. Они потребовала, чтобы матрица выводилась рандомно. И вот на этом я и завис... Вот самый первый мой рабочий вариант: Program var25;
const n=4;
type ar=array[1..100] of integer;
var s,m,z,j,n1:integer;
b,c:ar;
procedure init(var a:ar);
var i:integer;
begin
writeln('vvedite chislo: ');
for i:=1 to n do
readln(a[i]);
end;
function max (a:ar):integer;
var i,max1:integer;
begin
max1:=a[1];
for i:=2 to n do
if a[i]>max1 then max1:=a[i];
max:=max1;
end;
function min(a:ar):integer;
var i,min1:integer;
begin
min1:=a[1];
for i:=2 to n do
if a[i]<min1 then min1:=a[i];
min:=min1;
end;
begin
writeln('kol-vo el-ov v stolbce: ',n);
writeln('vvedite kol-vo stolbcov: ');
readln(z);
for m:=1 to z do
begin
init(b);
c[m]:=min(b);
end;
s:=max(c);
writeln('max= ',s);
end.
-------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
матрицу приходилось вводить вручную, и это преподу не понравилось. Они потребовала, чтобы матрица выводилась рандомно. И вот на этом я и завис... Вводить рандомно всегда проще, чем вручную. Program var25;
const
n=4;
type
ar=array[1..100] of integer;
var
s,m,z,j,n1:integer;
b,c:ar;
function max (a:ar):integer;
var
i,max1:integer;
begin
max1:=a[1];
for i:=2 to n do if a[i]>max1 then max1:=a[i];
max:=max1;
end;
function min(a:ar):integer;
var
i,min1:integer;
begin
min1:=a[1];
for i:=2 to n do
if a[i]<min1 then min1:=a[i];
min:=min1;
end;
begin
writeln('kol-vo el-ov v stolbce: ',n);
writeln('vvedite kol-vo stolbcov: ');
readln(z);
for m:=1 to z do begin
for j:=1 to n do b[j]:=Random(100); {сл. ч. в диапазоне 0 - 99 }
c[m]:=min(b);
end;
s:=max(c);
writeln('max= ',s);
end.
Но только боюсь, что твоя преподавательница опять будет недовольна. Ты фактически избегаешь использовать матрицу о которой идет речь в условии. Сделай, как я тебе сделал в первой задаче.И, пожалуйста, форматируй код по-человечески!! Невозможно же читать, приходится сначала все форматировать.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
org777 |
![]()
Сообщение
#11
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
по твоему способу он на все вводимые с клавы числа выводит max=16...
-------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Цитата по твоему способу он на все вводимые с клавы числа выводит max=16... А randomize у тебя есть, чтобы при разных запусках программы генерировались разные случайные числа? У тебя ж генерируется все время все одинаковое... Для отладки - хорошо, для работы - не очень. Добавь randomize первой строкой программы, и запускай. |
org777 |
![]()
Сообщение
#13
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Короче, получилось вот так вот:
Program var25;
const
n=4;
type
ar=array[1..100] of integer;
var
s,m,z,j,i,m1,n1:integer;
b,c:ar;
a:array[1..100,1..100] of integer;
procedure sort(n:integer; var a:ar);
var
k,i,t:integer;
begin
for k:=2 to n do for i:=k downto 2 do if a[i]>a[i-1] then begin
t:=a[i];
a[i]:=a[i-1];
a[i-1]:=t;
end;
end;
function max (a:ar):integer;
var
i,max1:integer;
begin
max1:=a[1];
for i:=2 to n do if a[i]>max1 then max1:=a[i];
max:=max1;
end;
function min(a:ar):integer;
var
i,min1:integer;
begin
min1:=a[1];
for i:=2 to n do
if a[i]<min1 then min1:=a[i];
min:=min1;
end;
begin
randomize;
for i:=1 to n1 do
begin
for j:=1 to m1 do
begin
a[i,j]:=random(100)-random(100);
write(a[i,j]:8);
end;
write;writeln;
end;
for i:=1 to n do
begin
for j:=1 to m do
readln(a[i,j]);
end;
end;
begin
writeln('kol-vo el-ov v stolbce: ',n);
writeln('vvedite kol-vo stolbcov: ');
readln(z);
for m:=1 to z do begin
for j:=1 to n do b[j]:=Random(100);
c[m]:=min(b);
end;
s:=max(c);
writeln('max= ',s);
readln;
end.
Но саму матрицу он опять не показывает... =( -------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата Но саму матрицу он опять не показывает... =( А ты ее где-нибудь хотя бы заполняешь (я не говорю о том, что компилятору надо сообщить о своем желании вывести матрицу на экран, он сам этого делать не умеет). Нет. Ты выбрал самый простой путь: заполняешь столбцы, ищешь в них минимумы, потом среди найденного ищешь максимум. Очень удобно, без лишних телодвижений, да? Ан вот оно "золотое правило". Где-то выиграл - значит, где-то проиграл. А проиграл ты в удобстве вывода результатов... В принципе, задача решается так (если принять, что матрица хранится по столбцам, и печатать ее соответственно):Program var25;
const
n = 4;
type
vec = array[1 .. 100] of integer;
mx = array[1 .. 100] of vec;
function max (const a: vec; n: integer):integer;
var
i, max1:integer;
begin
max1:=a[1];
for i:=2 to n do if a[i]>max1 then max1:=a[i];
max:=max1;
end;
function min(const a: vec; n: integer):integer;
var
i,min1:integer;
begin
min1:=a[1];
for i:=2 to n do
if a[i]<min1 then min1:=a[i];
min:=min1;
end;
var
cols, s,z,j,n1:integer;
c: vec;
A: mx;
begin
randomize;
writeln('kol-vo el-ov v stolbce: ',n);
writeln('vvedite kol-vo stolbcov: ');
readln(z);
for cols := 1 to z do begin
for j := 1 to n do a[cols, j] := Random(100);
c[cols] := min(a[cols], n);
end;
for j := 1 to n do begin
for cols := 1 to z do
write(a[cols, j]:4);
writeln;
end;
s:=max( c, z );
writeln('max= ',s);
end.
|
org777 |
![]()
Сообщение
#15
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
Да уж, о "золотом правиле" я и не подумал...
Если я правильно понял, ты ее через вектор сделал... Не подумал я... а что за переменная cols? -------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
А что за переменная M у тебя была? Как хочу, так и обзываю переменные. Только в моем случае понятно, что это - переменная для перебора столбцов (columns), а в случае M может быть вообще что угодно.
|
org777 |
![]()
Сообщение
#17
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
ааа, просто я не знал о переменной для перебора столбцов, поэтому и стало любопытно
![]() большое спасибо =) -------------------- Когда вам говорят - "придурок" - это намек на то, что рядом с вами находится дура.
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 9:21 |