Кому порешать задачи - пишите сюда

Ronan

root@ronan-laptop:~#
Розрахунок одно – двовимірних масивів

В двовимірному масиві А[1..5,1..5] знайти найменший елемент побічної діагоналі.
ссылка с заданием (вариант отмечен красным цветом)
 

Вкладення

Пух

كنت بلهاء
Модератор
Re: Розрахунок одно – двовимірних масивів

В двовимірному масиві А[1..5,1..5] знайти найменший елемент побічної діагоналі.
ссылка с заданием (вариант отмечен красным цветом)
создаешь массив(ввод, вывод).
побична диагональ - с левого верхнего по правый нижний угол(вроде так).
координаты элементов этой диагонали будут (1;1), (2;2), (3;3), (4;4), (5;5).
задаешь, что элемент с координатами (1;1) - минимальный.
начишаешь проходить массив по диагонале, сравнюя каждый элемент с минимальным (в нашем случае (1:1)). Если следущий элемент меньший чем минимальный, значит его делаем минимальным и продолжаем сравнивать относительно этого элемента.

//arr-массив, min - минимальный элемент, тип такой же как у элементов массива.

min:=arr[1,1];
for i:=1 to 5 do
begin
if arr[i,i]<min then
arr[i,i]:=min;
end;
writeln('min=',min);
end.
 

Cris

Member
Re: Розрахунок одно – двовимірних масивів

один момент.. нафик сравнить єлемент с этим же?
"for i:=2 to 5 do"..
и еще.. "arr[i,i]:=min;" развернуть, "min:=arr[i,i];"
воторое да, а насчет первого, он писал без оптимизации, можно просто тогда перед циклом поставить min:=maxlongint;
 

Пух

كنت بلهاء
Модератор
Re: Розрахунок одно – двовимірних масивів

один момент.. нафик сравнить єлемент с этим же?
"for i:=2 to 5 do"..
и еще.. "arr[i,i]:=min;" развернуть, "min:=arr[i,i];"
это да =)
писать код вообще не хотел, написал только принцип алгоритма.


Дано рядок-речення. Зашифрувати його, помістивши спочатку всі символи, розміщені на парних позиціях, а потім всі символи, розміщені на непарних позиціях.

uses crt;
var a,a1:string;
i,j:integer;
begin
clrscr;
write('Введите строку: '); read(a);
j:=length(a) div 2 + 1;
i:=1;
repeat
if i mod 2 = 0 then
a1[i div 2]:=a
else begin
a1[j]:=a;
inc(j);
end;
inc(i);
until i>length(a);
gotoxy(1,2);
for i:=1 to length(a) do
write(a1);
readkey;
end.


почему
for i:=1 to length(a) do
write(a1);


выводит строку на экран, а банальное write(a1); - нет ?
 

Cris

Member
Re: Розрахунок одно – двовимірних масивів

это да =)
писать код вообще не хотел, написал только принцип алгоритма.


Дано рядок-речення. Зашифрувати його, помістивши спочатку всі символи, розміщені на парних позиціях, а потім всі символи, розміщені на непарних позиціях.



почему


выводит строку на экран, а банальное write(a1); - нет ?
а почему for i:=1 to length(a), может а1(хотя это безтолку)?, а вообше поидеи должно выводить, а там нету случайно что первый символ строки #13, #0?

попробуй этот код:
Код:
var s1,s2,s:string;
i:integer;
begin
readln(s);
s1:='';
s2:='';
for i:=1 to length(s) do
if i mod 2 =0
then s1:=s1+s[i]
else s2:=s2+s[i];
writeln(s1+s2);
end.
 

Пух

كنت بلهاء
Модератор
Re: Розрахунок одно – двовимірних масивів

а почему for i:=1 to length(a), может а1(хотя это безтолку)?, а вообше поидеи должно выводить, а там нету случайно что первый символ строки #13, #0?

попробуй этот код:
Код:
var s1,s2,s:string;
i:integer;
begin
readln(s);
s1:='';
s2:='';
for i:=1 to length(s) do
if i mod 2 =0
then s1:=s1+s[i]
else s2:=s2+s[i];
writeln(s1+s2);
end.
та меня больше не сам код интересует (тут идея ясная, просто немного разная реализация), а почему в моем варианте выводить нормально не хочет.

если я не ошибаюсь, то если написать
,то вообще выводить не будет :mrgreen:
вообщем, незнаю в чем дело =)
 

xZ_

Хьёзь
Re: Розрахунок одно – двовимірних масивів

та меня больше не сам код интересует (тут идея ясная, просто немного разная реализация), а почему в моем варианте выводить нормально не хочет.
попробуй изначально забить а2 какимито значениями, например пробелами.. чтоб потом вместо пробелов подставлять уже значения необходимые, еще лучше наверн просто сделай a1=a; а потом делай перестановки
 
Останнє редагування:
Зверху