Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Помогите, пожалуйста....
Дали задачу, а как она решается я понять не как не могу, условия задачи:
Задана матрица вещественного типа A[N,N]. Найти две суммы: сумму главной и побочной диагоналей. Записать в файл сначала элементы той диагонали, сумма которой больше, а затем элементы последней строки данной матрицы. Матрицу и файл распечатать в общепринятом виде.
Дальше сравниваете, потом пишете в файл по примеру первого цикла или второго (в зависимости от результатат сравнения). Там возникает вопрос, а что писать, когда суммы равны ?
Элементы последней строки пишутся тоже в цикле: A[N,i].
Куратор темы Статус: Не в сети Регистрация: 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 Я конечно все понимаю....но знаете бывает когда человек в определенной области не догоняет вообще....((( - это про меня!
Я бы Вас и не беспокоил, и не просил бы написать(!) программу если бы сам бы разбирался как она пишется....
micron88 Значит, если человек не догоняет в какой-то области и не хочет категорически воспринимать даже самые простейшие вещи, то является нормой написания за него программы? Так что ли? Если человек решил заниматься чем-то, чем пока что не умеет и не хочет уметь, но ему делать надо, то обычно за это платят. Т.е "я не знаю как пекут этот пирог - я просто его покупатель". Я лично двумя руками за кому-то помочь разобраться, но пишу полностью за кого-то коды намного реже и гораздо неохотнее.
Lord_of_Darkness C пунктом 2....
Такое ощущение, что когда нибудь, кто нибудь пишет слово РЕШАТЬ - оно вас так бесит....что Вы просто готовы рвать и метать *УЖАС))))*
sashar2 Ясно.....Ну вроде бы задача решена(или написана, кто как)), завтра отнесу учителю, а он поможет исправит ошибку под номер 77...и тогда может выставлю её сюда - мало ли кому в будущем эта же программа попадется...
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.
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.
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.
Вот я просто вынес блок сдвига всего массива в отдельное место, получилось вполне нормально:
Код:
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.
sashar2 Я не только это имел в виду. Там имеется нюанс, который обеспечивает исключение элементов массива, равных 0. Т.к. остаток от деления 0 на любое число есть 0 .
manya Это нужно оговорить в задании (т.е как поступать с элементами, равными 0).
Member
Статус: Не в сети Регистрация: 10.12.2007 Откуда: Санкт-Петербург
Извините за беспокойство, но можно вопрос? Отрицательные элементы в массиве поставить на 1 место, а затем поместить положительные не меняя порядка не среди отрицательных, ни среди положительных. Я не понимаю, какое должно быть условие в
Код:
if m[j]>0 then
Хотя понятно, что не такое как у меня
Код:
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.
И вообще, какой вид сортировки лучше использовать?
manya А кто мешает воспользоваться пузырьковым методом сортировки?
Внутренний цикл со счетчиком от 1 до n-1, условие перестановки (m[i]>=0) and (m[i+1]<0), причем нули в данном случае считаются положительными числами (кстати, на будущее обговаривайте с преподавателем вопросы взаимодействия с нулями, не первый раз уже ). Выход из внешнего цикла по условию отсутствия перестановок во время внутреннего цикла.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения