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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Программирование обработки одномерных массивов
сообщение
Сообщение #1





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

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


Помогите, пожалуйста решить 2 задачки:
1) Создать массив вещественных чисел. Заменить все отрицательные значения равными по модулю положительными и вывести результат работы на экран.

2) Создать массив целых чисел. Найти сумму и количество тех элементов массива, которые меньше заданного числа N. Вывести результат работы на экран.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

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

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


var arr : array [ 1..100] of real;
n:integer;
i:integer;
begin
for i:= 1 to n do
if arr[i]<0 then arr[i]:=-2*(arr[i]);
for i:= 1 to n do
writeln(arr[i]);
end.


Сообщение отредактировано: volvo -


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






ЯЯЯ, в задаче №1 проще всего пробежаться по всему массиву, заменяя
a[i] := Abs(a[i]);
при этом неотрицательные числа останутся прежними, а отрицательные сменят знак... И никаких условий не нужно - без них будет даже быстрее...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

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

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


var arr : array [ 1..100 ] of integer;
n:integer;
c:integer;
i,count:integer;
begin
count:=0;
for i:= 1 to c do
if arr[i]<n then count:=count+arr[i];
for i:= 1 to c do
write(arr[i],' ');
end.


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Reflex, а если подумать?
if arr[i]<0 then arr[i]:=-2*(arr[i]);
При arr[i] = -20 что будет?

В задаче №2 ты можешь очень сильно пострадать: переменная C не инициализирована (впрочем, так же, как и N в первой)...

Никогда не торопись... Особенно, если хочешь кому-то ПОМОЧЬ...

М
P.S. Ну, и зачем ПОЛНЫЕ решения??? Что, человек научится чему-нибудь? А вот неприятный осадок точно останется. Решения вроде полные, а нерабочие... Будет так продолжаться - получишь наказание. Правила еще никто не отменял:
Цитата(Правила Раздела)
7. Проверяйте программы перед тем, как разместить их на форуме!!!


 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Volvo - опечатка

if arr[i]<0 then arr[i]:=-(arr[i]);



а поповоду переменных N и С - это переменные означающие количество использованных переменных в массиве, а предполагаеться что значение переменных n и c даны и массив заполнен

А программы проверялись, просто я запуталась когда перепечатывала

теперь буду писать в Delphi и просто копировать, а полные решение, лично мне проще, тебе дают а ты потом час, а то и два разбираешься, к каждой строчке коментарий пишешь. Так тоже понимание приходит


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


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ОФФ:
из паскаля тоже можно копировать smile.gif просто открывай pas файл блокнотом.
а разбираться никто не будет smile.gif пойдут сдавать готовое, не глядя. ни на один вопрос препода не смогут ответить и тебя же обвинят во всех смертных грехах.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


Задачи не работают! Помогите исправить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


выложи код, который править. А те задачи которые выложила я достаточно правильные почитай эту тему и пойми что делать ;)


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Program Sm;
var arr : array [ 1..100 ] of integer;
n:integer;
c:integer;
i,count:integer;
begin
count:=0;
for i:= 1 to c do
if arr[i]<0 then arr[i]:=-(arr[i]);
for i:= 1 to c do
write(arr[i],' ');
end.


Заменил, не работает всё равно!

Сколько ни пытался "пробежаться по всему массиву заменяя a[i] := Abs(a[i]);" в 1-ой задаче, ничего не вышло!
Где я не прав?

 ! 
ТЕГИ !

 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Program Sm;
uses crt;
var a : array [ 1..100 ] of integer;
n:integer;
i:integer;
begin
clrscr;
randomize; {делает так чтоб числа каждый раз выпадали разные}
writeln('Введите количесто символов в массиве?');
read(n); {читаем скоко символов хотите чтоб было }
for i:= 1 to n do
begin
a[i]:=random(20)-10; {заполняем массив чилами случайным образом}
write(a[i],' ');{показывает ети числа которые задались рандомом}
if a[i]< 0 then a[i]:=abs(a[i]);{если число < 0 то тогда записуем ето число в масcив по модулю}
end;
writeln;
for i:= 1 to n do
write(a[i],' '); {выдает результат}
repeat until keypressed; {выходит при нажатий на любую клавишу }
end.


 ! 
Используем теги !



Сообщение отредактировано: klem4 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






TimeStopper, если в IDE установлен режим RangeCheck (что, кстати, вполне логично делать, особенно для начинающего), то твой код вылетит при генерации первого же числа, которое ты думаешь, что будет отрицательным... Я бы делала так:

a[i]:=Integer(random(20))-10;
, тогда ошибки не будет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13





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

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


А что насчёт первой задачи?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Цитата(ЯЯЯ @ 10.11.2006 16:31) *

А что насчёт первой задачи?

Так ето и есть первая задача.
а на счет второй вот:


Program n1;
uses crt;
var a : array [ 1..100 ] of integer;
n,m:integer;
i:integer;
s:integer;
k:integer;
begin
clrscr;
randomize;
writeln('Введите количесто символов в массиве?');
read(m);
writeln('Введите N');
read(n);
for i:= 1 to m do
begin
a[i]:=random(20);
write(a[i],' ');
if a[i]<n then
s:=s+a[i];
inc(k);
end;
writeln;
writeln('Количество символов которые меньше N = ',k);
writeln('Сума таких чисел = ',s);
repeat until keypressed; {выходит при нажатий на любую клавишу }
end.

Я не компилировал но вроде правильно.

 ! 
Еще раз запостишь код без тегов, получишь предупреждение

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


Perl. Just code it!
******

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

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


Цитата
Я не компилировал но вроде правильно.


Последнее китайское предупреждение, _ЧИТАЙТЕ_ правила форума или в крайнем случае не пишит подобные глупости, вот это ты видел ?

Цитата(Правила форума)
7. Проверяйте программы перед тем, как разместить их на форуме!!!


dry.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


Видел, но я просто быстро писал и хотел помочь, и если сделал какуето ошибку, то чтоб не ругали сильно. Но больше так небуду.

Сообщение отредактировано: TimeStopper -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Perl. Just code it!
******

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

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


Поспешишь - людей насмешишь. Твоя программа выдает бредовый результат.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата(klem4 @ 10.11.2006 22:36) *

Поспешишь - людей насмешишь. Твоя программа выдает бредовый результат.

ну... а что она может выдавать? smile.gif

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

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

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


Цитата(klem4 @ 10.11.2006 21:36) *

Поспешишь - людей насмешишь. Твоя программа выдает бредовый результат.

В смысле бредовые?

Сообщение отредактировано: TimeStopper -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Perl. Just code it!
******

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

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


В смысле результат, который выдает твоя программа порой является чушью не совместимой с истиной, так понятнее ?



Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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