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

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

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

> Программирование обработки одномерных массивов
ЯЯЯ
сообщение 27.10.2006 16:27
Сообщение #1





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

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


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

2) Создать массив целых чисел. Найти сумму и количество тех элементов массива, которые меньше заданного числа N. Вывести результат работы на экран.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
Reflex
сообщение 27.10.2006 16:37
Сообщение #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 - 3.11.2006 18:10


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


Гость






ЯЯЯ, в задаче №1 проще всего пробежаться по всему массиву, заменяя
a[i] := Abs(a[i]);
при этом неотрицательные числа останутся прежними, а отрицательные сменят знак... И никаких условий не нужно - без них будет даже быстрее...
 К началу страницы 
+ Ответить 
Reflex
сообщение 27.10.2006 16:39
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.10.2006 16:40
Сообщение #5


Гость






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

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

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

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


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


Пионер
**

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

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


Volvo - опечатка

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



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

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

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


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


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

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

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


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


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





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

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


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


Пионер
**

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

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


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


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 9.11.2006 17:34
Сообщение #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-ой задаче, ничего не вышло!
Где я не прав?

 ! 
ТЕГИ !

 К началу страницы 
+ Ответить 
TimeStopper
сообщение 9.11.2006 18:10
Сообщение #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 - 10.11.2006 22:24
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алена
сообщение 10.11.2006 9:37
Сообщение #12


Гость






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

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





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

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


А что насчёт первой задачи?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TimeStopper
сообщение 10.11.2006 21:09
Сообщение #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 
 К началу страницы 
+ Ответить 
klem4
сообщение 10.11.2006 22:26
Сообщение #15


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

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

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


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


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

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


dry.gif


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


Новичок
*

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

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


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

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


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

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

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


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


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


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

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

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


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

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

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

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


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


Новичок
*

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

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


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

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

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

Сообщение отредактировано: TimeStopper - 10.11.2006 23:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 10.11.2006 23:22
Сообщение #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

 



- Текстовая версия 20.07.2025 14:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"