Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 34 из 50<  1 ... 31  32  33  34  35  36  37 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Помогите, пожалуйста....
Дали задачу, а как она решается я понять не как не могу, условия задачи:
Задана матрица вещественного типа A[N,N]. Найти две суммы: сумму главной и побочной диагоналей. Записать в файл сначала элементы той диагонали, сумма которой больше, а затем элементы последней строки данной матрицы. Матрицу и файл распечатать в общепринятом виде.


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
micron88
Главная:
Код:
Sumg:=0;
for i:=1 до N do
    Sumg:=Sumg+A[i,i];

Побочная:
Код:
Sump:=0;
for i:=1 до N do
    Sump:=Sump+A[i,N+1-i];

Дальше сравниваете, потом пишете в файл по примеру первого цикла или второго (в зависимости от результатат сравнения). Там возникает вопрос, а что писать, когда суммы равны :)?
Элементы последней строки пишутся тоже в цикле: A[N,i].


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Lord_of_Darkness Спасибо

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

maco
Спасибо...а можно ее как нить решить, а то у меня жестокие проблемы с решением файлов...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
micron88
1. можно попробовать сделать хотябы что-то самостоятельно.
2. программы не решаются, прогаммы пишутся. Так что, не решить, а написать, накодить, сваять, слепить, как угодно, но не решить.
3. работа с файлами:

Код:
var f:text;

begin
.....

assign(f,'C:\results.txt'); // сопоставляем логическую переменную и имя реального файла
rewrite(f);  // перезаписываем (создаем) файл
write(f,'любая переменная, в т.ч. элемент массива'); // пишем данные в файл
close(f); // закрываем файл, сохраняя изменения

.....
end.


это есть в абсолютно любом учебнике по паскалю.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Lord_of_Darkness
Я конечно все понимаю....но знаете бывает когда человек в определенной области не догоняет вообще....((( - это про меня!
Я бы Вас и не беспокоил, и не просил бы написать(!) программу если бы сам бы разбирался как она пишется....


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
micron88
Значит, если человек не догоняет в какой-то области и не хочет категорически воспринимать даже самые простейшие вещи, то является нормой написания за него программы? Так что ли? Если человек решил заниматься чем-то, чем пока что не умеет и не хочет уметь, но ему делать надо, то обычно за это платят. Т.е "я не знаю как пекут этот пирог - я просто его покупатель".
Я лично двумя руками за кому-то помочь разобраться, но пишу полностью за кого-то коды намного реже и гораздо неохотнее.


 

Lord_of_Darkness
C пунктом 2....
Такое ощущение, что когда нибудь, кто нибудь пишет слово РЕШАТЬ - оно вас так бесит....что Вы просто готовы рвать и метать *УЖАС))))*
sashar2
Ясно.....Ну вроде бы задача решена(или написана, кто как)), завтра отнесу учителю, а он поможет исправит ошибку под номер 77...и тогда может выставлю её сюда - мало ли кому в будущем эта же программа попадется...


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
micron88
Ошибку и мы можем помочь исправить т.к это на самом деле помощь, а не написание за другого. Дело твое :).


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Не могли бы вы сказать мне в чем у меня ошибка? Присвоить t значение true если массив возрастающий
Код:
program mas;
 const n=10;
 var m:array [1..n] of integer;
 i:integer;
 t:boolean;
begin
 for i:=1 to n do
               readln(m[i]);
 for i:=1 to n do
                writeln('vashi chisla',' ',m[i]);
 i:=1;
 while (m[i+1]>m[i]) and (i<n-1) do
 i:=i+1;
 if i<n then t:=false
 else t:=true;
 writeln(t);
 readln;
end.



 

Member
Статус: Не в сети
Регистрация: 05.12.2005
manya
Отвечаю с работы, тут паскаля нет, но думаю что так:

Код:
program mas;
 const n=10;
 var m:array [1..n] of integer;
 i:integer;
 t:boolean;
begin
 for i:=1 to n do
               readln(m[i]);
 for i:=1 to n do
                writeln('vashi chisla',' ',m[i]);
 i:=1;
 while (m[i+1]>m[i]) and (i<n) do
 i:=i+1;
 if i<n then t:=false
 else t:=true;
 writeln(t);
 readln;
end.


Просто условие "and (i<n) do" должно быть.


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
sashar2 Спасибо :wink:

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Я очень сильно извиняюсь, но у меня ещё один вопрос...
Удалить из массива элементы кратные К, а у меня ошибка...
Код:
program zadacha;
 const dim=10;
 var m:array[1..dim]of integer;
     i,k,j,n:integer;
begin
 randomize;
 writeln('vvedite znachenie k');
 readln(k);
 for i:=1 to dim do
   m[i]:=random(23);
 for i:=1 to dim do
   write(m[i]:3);
 i:=0;
 j:=0;
 n:=dim;
 repeat
  i:=i+1;
  while (m[i] mod k=0) do
                       begin
                       j:=i;
                        repeat
                        m[j]:=m[i+1];
                        j:=j+1;
                        until j>=n;
                       end;
 until i>=n;
 if n<dim then
  for i:=n+1 to dim do m[i]:=0;
 writeln('novii massiv');
 writeln;
 for i:=1 to dim do
           write(m[i]:3);
 readln;
end.


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
Код:
m[i] mod k=0
Будут глюки с 0 :).
Код:
until j>=n;
end;
Замените на
Код:
until j>n-1;
n:=n-1;
end;
А это
Код:
until i>=n;
на
Код:
until i>n;

Я не проверял, что получится, так что мелкие ошибки ищите сами.


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
Вот я просто вынес блок сдвига всего массива в отдельное место, получилось вполне нормально:

Код:
program zadacha;
const dim = 10;
type MArray = array[1..dim] of integer;
var m:MArray;
    size,i,k:integer;

function Remove(var m:MArray; index:integer; size:integer):integer;
var i : integer;
begin
  for i := index to size do
  begin
   if (i = size) then
     m[i] := 0
   else
     m[i] := m[i+1];
  end;
  Remove := size - 1;
end;

begin
randomize;

write('Please enter K = ');
readln(k);

for i:= 1 to dim do
  m[i] := random(23);
for i:= 1 to dim do
  writeln(m[i]:3);

size := dim;
i := 1;
while (i <= size) do
begin
  if (m[i] mod k = 0) then
    size := Remove(m, i, size)
  else
    inc(i);
end;

writeln('New array: ');
for i := 1 to size do
  writeln(m[i]:3);

readln;
end.


P.S>
Как правильно заметил maco, не мешало бы поставить еще проверку на то, что К <> 0.


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
sashar2
Я не только это имел в виду. Там имеется нюанс, который обеспечивает исключение элементов массива, равных 0. Т.к. остаток от деления 0 на любое число есть 0 :).

manya
Это нужно оговорить в задании (т.е как поступать с элементами, равными 0).


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
maco sashar2 Всем спасибо( огромное) :applause:


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Извините за беспокойство, но можно вопрос? :oops: Отрицательные элементы в массиве поставить на 1 место, а затем поместить положительные не меняя порядка не среди отрицательных, ни среди положительных. Я не понимаю, какое должно быть условие в
Код:
if m[j]>0 then
Хотя понятно, что не такое как у меня :weep:
Код:
 const n=10;
 type massiv = array [1..n] of integer;
Procedure Sortirovka(var m:massiv);
  var i,j,a,k,s:integer;
begin
 for i:=1 to n-1 do
   for j:=i+1 to n do
       begin
          if m[j]>0 then
                begin
                k:=m[i];
                m[i]:=m[j];
                m[j]:=k;
                end;
        end;
end.

И вообще, какой вид сортировки лучше использовать? :?:


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
manya
А кто мешает воспользоваться пузырьковым методом сортировки?
Внутренний цикл со счетчиком от 1 до n-1, условие перестановки (m[i]>=0) and (m[i+1]<0), причем нули в данном случае считаются положительными числами (кстати, на будущее обговаривайте с преподавателем вопросы взаимодействия с нулями, не первый раз уже :)). Выход из внешнего цикла по условию отсутствия перестановок во время внутреннего цикла.


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
maco Огромное спасибо, в очередной раз выручили!!!!! :hi:

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 34 из 50<  1 ... 31  32  33  34  35  36  37 ... 50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan