IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на последовательность,где ошибка?
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Даны целые числа а1 , а2 .... .Известно , что а1>0 и что среди а1 , а2 ... есть хотя бы одно отрицательное число
.Пусть а1, ... аn - члены данной последовательности ,предшествующие первому отрицательному члену (n заранее известно).Получить max((а1)^3) ,.....,((an)^3).


Program Zadanie4;
Uses wincrt;
var i,n,s:integer;
var a:array[1..100] of integer;
Begin
s:=0;
Writeln('Vvedite kolichestvo elementov');
Read(n);
Writeln('Vvedite elementy');
For i:=1 to n do
read(a[i]);
While (a[i]>0) do
s:=(a[i]*a[i]*a[i])+s;
Writeln('Polucheny dannye:',s)
End.



где ошибка? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Задача на обработку строк:
Код

var
STR:string[80];
L,I,K:BYTE;
M:SET OF CHAR;
Begin
M:=['.',',','!','?','-',';',':'];
Write('Vvedite stroku: ');
Readln (STR);
L:=byte(STR[0]);
For i:=L downto 1 do
   If STR[I] in M then
    begin
     K:=i;
     break;
    end;
if i<>0 then
  Delete(str,k,1);
Writeln('Poluchena stroka:',str);
readln;
End.


Что же до задач на последовательность, то там вообще можно обойтись без массива.
Потом, ты пишешь:
Код

While (a[i]>0) do
  s:=(a[i]*a[i]*a[i])+s;

В итоге у тебя получается, что в первой строчке a[i] сравнивается с 0. А чему при этом равно i? Оно равно n+1.
То есть, несуществующий элемент массива сравнивается с 0. Потом, как у тебя к сумме могут добавляться значения элементов массива в кубе при неизменяющемся i?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 13.09.2025 3:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name