Вопрос № 58585: Здравствуйте, что здесь неправельно?
uses wincrt;
Const
N=5; M=5;
Var A: Array [1..N,1..M] of Integer;
X,I,J:Integer;
BEGIN
Writeln('Ââåäèòå ÷èëî, êî...Вопрос № 58626: Добрый день!
Уважаемые эксперты, не подскажете, как на Паскале реализовать алгоритм рисования изолиний (линий уровня) и траектории спуска в точку экстремума для квадратичной функции двух переменных? Вернее, траекторию спуска я себе представляю, к...Вопрос № 58684: Здравтсвуйте, пожалуйста скажите плз что тут не так? Зарание благодорю!
Описание простой дроби:
type paprasta = record
skaitiklis,
vardiklis: 1..100
end;
Описание периодической дроби:
type periodinė = rec...Вопрос № 58718: Здравствуйте. Как решить такую задачу:
Дано массив чисел А[1..N,1..M]. числа размещены по возрастанию у рядках та столбцах: A[I;1]<A[I;2]<..<A[I;M]
A[1;J]<A[2;J]<..<A[N;J]. Найти элемент массиву, равный заданному числу Х и н...
Вопрос № 58.585
Здравствуйте, что здесь неправельно?
uses wincrt;
Const
N=5; M=5;
Var A: Array [1..N,1..M] of Integer;
X,I,J:Integer;
BEGIN
Writeln('Ââåäèòå ÷èëî, êîòîðîå íàäî íàéòè');
Readln(X);
For I:=1 To N Do
For J:=1 To M Do
If (M+N) > A[I,J] Then Begin
Writeln ('ERROR')
Else
If A[I,J] = X Then Writeln ('Îòâåò', A[I,J])
Else Writeln('HI');
End;
End.
Приложение:
Отправлен: 11.10.2006, 22:44
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Andronik
Здравствуйте, ataman!
uses wincrt;
Const
N=5; M=5;
Var A: Array [1..N,1..M] of Integer;
X,I,J:Integer;
BEGIN
Writeln('Ââåäèòå ÷èëî, êîòîðîå íàäî íàéòè');
Readln(X);
For I:=1 To N Do
For J:=1 To M Do
If (M+N) > A[I,J] Then Begin {есть начальный Begin}
Writeln ('ERROR') {но вот тут нет End, поэтому будет выдаваться ошибка на следующей строке}
Else
If A[I,J] = X Then Writeln ('Îòâåò', A[I,J])
Else Writeln('HI');
End; {аналогично, есть конечный End, но нет начального Begin}
End.
{PS - вообще на вижу смысла в установлении здесь операторных скобок. Просветите, зачем вы вообще их поставили?}
--------- Запрограммировать можно все... кроме собственного поведения
Ответ отправил: Andronik (статус: 1-ый класс)
Ответ отправлен: 11.10.2006, 23:04 Оценка за ответ: 5
Отвечает: Verena
Здравствуйте, ataman!
Операторные скобки действительно расставлены неверно. Но я не понимаю, как вы можете сравнивать элемент матрицы А, в который ещё ничего не присваивали, с какими-либо значениями. Ведь сами они в этом случае будут иметь произвольное значение!
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 1-ый класс)
Ответ отправлен: 11.10.2006, 23:34
Отвечает: Strory
Здравствуйте, ataman!
Тут много чего неправильно. Тут даже синтаксические ошибки.
If (M+N) > A[I,J] Then Begin Writeln ('ERROR') Else ...
Здесь begin открывается, end'ом не закрывается, а сразу идёт else. Нужно:
If (M+N) > A[I,J] Then Begin Writeln ('ERROR') end Else ...
А по большому счёту здесь вообще не нужна конструкция begin...end, ибо в ней содержится всего лишь одна процедура.
Дальше. Что Вы пытаетесь сделать этой конструкцией:
If (M+N) > A[I,J] Then
Это, вообще, что? (M+N) - полупериметр массива. A[i,j] - элемент массива. Если элемент массива больше полупериметра, то что? Что Вы таким образом проверяете?
Дальше. Массив неинициализирован, т.е. имеет неопределённые значения. Что в нём можно искать?
Задачу не сформулировали, тогда сформулирую я и сам попытаюсь её решить :)
Значит, имеем массив случайных целых чисел MxN. Нужно проверить, содержит ли массив X и если содержит, вывести координаты всех элементов содержащих X.
Решение в прилождении
Удачи! Strory.
Приложение:
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 12.10.2006, 00:23
Вопрос № 58.626
Добрый день!
Уважаемые эксперты, не подскажете, как на Паскале реализовать алгоритм рисования изолиний (линий уровня) и траектории спуска в точку экстремума для квадратичной функции двух переменных? Вернее, траекторию спуска я себе представляю, как нарисовать, а вот с линиями уровня проблема.
Отвечает: Verena
Здравствуйте!
Можно сделать так: взять какой-нибудь интервал, находить в нём точки, принадлежащие линиям уровня с маленькой разницей в координатах и рисовать в этих точках окружности маленького радиуса - в масштабе они сольются в линию.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 1-ый класс)
Ответ отправлен: 12.10.2006, 16:09
Вопрос № 58.684
Здравтсвуйте, пожалуйста скажите плз что тут не так? Зарание благодорю!
Описание простой дроби:
type paprasta = record
skaitiklis,
vardiklis: 1..100
end;
Описание периодической дроби:
type periodinė = record
sv: 1..100; {целая часть}
nep, {непериодическая часть}
per: integer; {период дроби}
end;
Приложение:
Отправлен: 12.10.2006, 16:28
Вопрос задал: Dr1m (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Dr1m!
Вы забыли поставить точку с запятой. :)
Желательно тип-диапазон объявить отдельно, так будет меньше ошибок при выполнении программы. Представьте, что в первой дроби Вы поставили 1..100, а во второй ошиблись и поставили 1..10, хотя должно быть одинаково. И вот задав присвоение этого поля от 1 до 100 в цикле, получите ошибку.
Правильно будет так:
{Описание простой дроби:}
type
int100 = 1..100; {Здесь задан тип-диапазон. Переменные этого типа могут содержать только целые числа от 1 до 100}
paprasta = record
skaitiklis,
vardiklis: int100;
end;
{Описание периодической дроби:}
type
periodinė = record
sv: int100; {целая часть}
nep, {непериодическая часть}
per: integer; {период дроби}
end;
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 13.10.2006, 09:40
Вопрос № 58.718
Здравствуйте. Как решить такую задачу:
Дано массив чисел А[1..N,1..M]. числа размещены по возрастанию у рядках та столбцах: A[I;1]<A[I;2]<..<A[I;M]
A[1;J]<A[2;J]<..<A[N;J]. Найти элемент массиву, равный заданному числу Х и напечатать его индекс [I;J]. Напечатать слова «HI», если такого элемента не найдется. Х – можно сравнивать не больше чем M+N элементами массива.
Отправлен: 12.10.2006, 22:52
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Strory
Здравствуйте, ataman!
Алгоритм: в таком массиве всегда можно найти число X (если оно там имеется) максимум за M+N шагов. Начинаем с элемента 1-1. Проверяем равен ли он X. Если нет выбираем куда дальше идти - вправо или вниз. Если справа элемент меньше или равен X, то идём вправо, иначе идум вниз.
Программа в приложении.
Удачи! Strory.
Приложение:
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 12.10.2006, 23:43
Отвечает: Monah
Здравствуйте, ataman!
var N:integer;
n:=2;
Возми значение a[1, M div N] сравниваешь его. Если искомое больше, ищешь в
N:=N*2;
Если меньше то N:=N div 2;
И ту же операцию по столбам. Если 1>N>M то число отсутствует
Ответ отправил: Monah (статус: 4-ый класс)
Ответ отправлен: 13.10.2006, 13:35