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

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

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

 
 Ответить  Открыть новую тему 
> Одномерные массивы - вычисление суммы индексов положительных элементов., очень надо помогите пожалста уже неделю сижу на ней...
сообщение
Сообщение #1





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

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


Написать программу, которая вводит с клавиатуры 25 действительных чисел, организовывает их хранение в одномерном массиве, а затем определяет число положительных элементов ланной последовательности и выводит результат... Помогите пожалуста, я уже не знаю что и делать. Да знаю, задача элементарная, но я в паскале новичок и толком ничего не знаю... wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

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

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


Я не понял конкретно что тебе надо получить, поэтому вывел все

uses crt; // модуль работы с экраном
const n=25; //количество элементов в массиве
var
a: array [1..25] of integer;
i,k,j,s: integer;

begin
clrscr; // очистка экрана
randomize; // подключаем случайные числа

for i:=1 to n do
begin
a[i]:=random(20)-10; // в цикле заполняем массив случайными числами от -10 до 9, если хочешь вручную
// то вместо этого напиши read(a[i]);
write(a[i],' '); // выводим на экран последовательность
end;

for i:=1 to n do
if a[i]>0 then // если число положительное
begin
s:=s+a[i]; // то суммируем его
inc(k); // увеличиваем количество
j:=j+i; // считаем сумму индексов
end;
writeln;
writeln('Summa polojitelnih elementov ',s); // выводим
writeln('Kol-vo polojitelnih elementov ',k);
writeln('Summa indecsov polojit elementov ',j);

readln;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Рустам, пара замечаний:
- в условии ясно сказано про количество, остальное - фантазии ));
- обязательно инициализируй переменные (счетчики, суммы..), не рассчитывай на компилятор;
- форматируй код - без этого не уйдешь дальше максимум сотни операторов.

PS
с крещением, +1 ))

Добавлено через 3 мин.
и отвыкай чистить экран в консольном режиме с последовательным выводом.. mauvais ton ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Можно еще одно замечание? smile.gif

Рустам, если уж ты ввел константу N и приписал в комментариях, что это "количество элементов в массиве", то надо было и массив описывать не через магическое число 25, а через N... А то надо будет изменить программу для работы с 30-ю значениями, ты N изменишь, и запустишь программу. А она что? Правильно, вылетит с ошибкой...

Цитата
отвыкай чистить экран в консольном режиме с последовательным выводом..
yes2.gif Первое, что делаю при тестировании чужих программ - отключаю CRT и убираю разноцветность и очистку экрана...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


lapp, -просто в названии темы одно а в задании другое..
- окей буду знать)
- в смысле форматировать? вроде и так все не в одну строчку написал))

и почему нельзя чистить экран , и надо убирать crt?
а про константу в описании массива я забыл ... извините
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Рустам @ 25.12.2009 16:38) *
lapp, -просто в названии темы одно а в задании другое..
думаю, надо ориентироваться на задание. А то, что в названии у него что-то другое - это вообще наказуемо smile.gif.

Цитата
- окей буду знать)
Это особенно относится к процедурам/функциям. А поскольку любой кусок кода может быть неожиданно перенесен в процедуру, то..

Цитата
- в смысле форматировать? вроде и так все не в одну строчку написал))
Это большое упущение твоего преподавателя.. Ты совсем не знаешь про формат??
Объяснять это ГОРАЗДО сложнее, чем показывать на примере. Внимательно рассмотри мои коды или коды volvo. У нас с ним есть некоторые различия в подходах, но не в главных моментах. Попробуй усвоить, что неясно - спрашивай.

Цитата
и почему нельзя чистить экран

- во время отладки КРАЙНЕ полезно иметь предыдущий вывод перед глазами.

- ты когда нибудь видел, чтоб нормальные команды делали это? dir, например. Когда я работаю в командной строке (а это нередко, и совсем не только в UNIX), я могу навыводить кучу полезной инфы, и вдруг мне потребуется твоя прога (калькулятор или еще что-то). Я и ее вызываю - хренак, она мне все стерла.. Зачем? А для красоты! smile.gif Если бы ты стирал только свои данные - это полбеды. Но ты стираешь ВСЕ! Надо УВАЖАТЬ чужую работу и не подвергать ее ненужному риску. А если мне понадобится очистить свой терминал - я это сделаю САМ. Это, конечно, не относится к программам с позиционным выводом - и то, там лучше промотать вверх перед работой.

Цитата
и надо убирать crt?
Модуль CRT противоречит основным принципам работы с терминалом. Более того, он переделывает по-своему работу с файлами. Я уж не говорю про то, что он увеличивает размер программы, а также может содержать ошибки (и содержит, в FPC, например). Это как трость, которая по сути не нужна, но если привык - не можешь без нее.

Кстати еще: randomize - это не инициализация случайных чисел. Это просто перемешивание. Этот оператор следует вставлять только после полной отладки. Отлаживаться на случайной, но ПОВТОРЯЕМОЙ последовательности гораздо проще.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Цитата(Lapp @ 26.12.2009 7:02) *
Это, конечно, не относится к программам с позиционным выводом - и то, там лучше промотать вверх перед работой.
Относится и к ним. И наиболее грамотно написанная часть из них не проматывает изображение вверх, а оставляет его как есть в 0-странице видеопамяти, а сама переключают вывод на 1-ю и пишет туда.
Ну а по окончании работы возвращаются в 0-ю, где сохранился весь предыдущий вывод.
Цитата

Модуль CRT противоречит основным принципам работы с терминалом.
Да.
Я, когда писал на ТР под DOS, специально сделал модуль MyCrt, содержащий лишь delay, readkey и keypressed, и пользовался только им.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Lapp, Adriano, хорошо спасибо!!:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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