Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2008, 12:02   #1
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию Помогите найти ошибку в задаче

Код:
Var n,i: integer;
A, B,r: array [1..n] of integer;
n,i: integer;
Begine
writeln ('введите 2 числа A и B')
for i:= 1 to n do
readln (A[i]);
for i := 1 to n do
redln (B[i]);
for i:= 1 to n do
r [i]:= A [i]+ B[i];
r [i] mod 5
r [i] mod 13
write ([i],n);
end
помогите, пожалуйста, найти ошибку
Пишет, что на месте n ожидалось константное выражение

Последний раз редактировалось rpy3uH; 08.12.2008 в 22:00.
Filosofijka вне форума Ответить с цитированием
Старый 01.12.2008, 12:07   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Filosofijka Посмотреть сообщение
Var n,i: integer;
A, B,r: array [1..n] of integer;
n,i: integer;
Begine
writeln ('введите 2 числа A и B')
for i:= 1 to n do
readln (A[i]);
for i := 1 to n do
redln (B[i]);
for i:= 1 to n do
r [i]:= A [i]+ B[i];
r [i] mod 5
r [i] mod 13
write ([i],n);
end
помогите, пожалуйста, найти ошибку
Пишет, что на месте n ожидалось константное выражение
Что должна делать Ваша программа? Много здесь ошибок. например:
write ([i],n); что вы хотите вывести ? write (r[i],n);

А n нужно константой делать
const n=10;
.......
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 01.12.2008 в 12:11.
alex_fcsm вне форума Ответить с цитированием
Старый 01.12.2008, 12:18   #3
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию

я заметила, что повторила
n,i: integer;
Программа должна найти сумму чисел на промежутке, кратных 5 и 13
Filosofijka вне форума Ответить с цитированием
Старый 01.12.2008, 12:21   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Filosofijka Посмотреть сообщение
я заметила, что повторила
n,i: integer;
Программа должна найти сумму чисел на промежутке, кратных 5 и 13
На каком промежутке? может быть найти числа кратные 5 и 13(причем одновременно) из массива r(r=A+B)?

ТО что Вы написали можно подправить, но по условию ли непонятно
Код:
const n=10;
Var i: integer;
    A,B,r: array [1..n] of integer;

Begin
writeln ('введите  числа для массива A');
for i:= 1 to n do
readln (A[i]);
writeln ('введите  числа для массива B');
for i := 1 to n do
readln (B[i]);
for i:= 1 to n do
begin
 r[i]:= A[i]+ B[i];
 r[i]:= r[i] mod 5;
 r[i]:=r[i] mod 13;
 write (r[i],' ');
end;
end.
Сформулируйте четко что дано и что нужно найти
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.12.2008, 12:25   #5
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию

Задача была:
Найти сумму всех чисел на промежутке от A до B, кратные 5 и 13. А и В вводятся с клавиатуры
Filosofijka вне форума Ответить с цитированием
Старый 01.12.2008, 12:29   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Filosofijka Посмотреть сообщение
Задача была:
Найти сумму всех чисел на промежутке от A до B, кратные 5 и 13. А и В вводятся с клавиатуры
Вот так-то лучше

Зачем Вам два массива?
Код:
Var i,a,b,sum: integer;
Begin
writeln ('input A')
readln (A);
writeln('Input b')
readln (B);
sum:=0;
for i:= a to b do
.....
Дальше доделайте сами. Сможете?

P.S. Число должно одновременно делиться на 5 и 13?
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 01.12.2008 в 12:41.
alex_fcsm вне форума Ответить с цитированием
Старый 01.12.2008, 12:35   #7
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию

Спасибо, огромное!!!! Дальше сама
Filosofijka вне форума Ответить с цитированием
Старый 02.12.2008, 10:45   #8
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию

Я решила так
Код:
var A, B, i, sum: integer;

begin
sum := 0;
read(A, B);
for i := A to B do
  if (i mod 5 = 0) and (i mod 13 = 0) then
    sum := sum + i;
writeln(sum);
end.
Но мне сказали, что это неверное решение. Нужны несколько циклов одном. Всё, все мои познания иссякли

Последний раз редактировалось rpy3uH; 08.12.2008 в 22:00.
Filosofijka вне форума Ответить с цитированием
Старый 02.12.2008, 12:46   #9
Filosofijka
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 21
По умолчанию

Помогите, пожалуйста с задачей
Filosofijka вне форума Ответить с цитированием
Старый 02.12.2008, 12:57   #10
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Это самое оптимальное решение, использование внутренних циклов здесь ни к чему. Скажи своему преподу, что он не прав.
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 4 04.07.2008 12:27
Помогите дописать и исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 5 30.05.2008 00:14
Пожалуйста срочно помочь мне исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 8 20.05.2008 20:46
Помогите исправить ошибку в задаче VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 22:16