Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 04.01.2009, 23:05   #1
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию Построить массив, в который поместить все элементы второго массива, оканчивающиеся на цифру 5

Задан массив действительных чисел. Построить новый массив, в который поместить все элементы исходного, оканчивающиеся на цифру 5. Блок-схема, алгоритмич. язык, паскаль.....

P.S.: Идей никаких((((
Паскалька^^ вне форума Ответить с цитированием
Старый 04.01.2009, 23:32   #2
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Вроде работает
Код:
program mas;
uses crt;
var mas,mas2,mas3:array[1..10000] of real; i,k,n:integer;
begin
clrscr;
writeln ('Введите размер');
readln (n);
for i:=1 to n do
begin
mas[i]:=random(500);
write (mas[i],'  ');
end;
for i:=1 to n do
begin
mas2[i]:=frac(mas[i]/10)*10;
if mas2[i]=5 then
begin
k:=k+1;
mas3[k]:=mas[i];
end;
end;
writeln;
writeln;
writeln;
for i:=1 to k do
write (mas3[i],'  ');
readkey
end.
Хотя второй масив (mas2) тут можно и не использовать

Последний раз редактировалось Teor; 05.01.2009 в 11:54.
Teor вне форума Ответить с цитированием
Старый 05.01.2009, 23:59   #3
BarracudaSSAT
 
Аватар для BarracudaSSAT
 
Регистрация: 05.01.2009
Сообщений: 8
По умолчанию

Teor, я слегка изменил твой код . не обижайся, если что, просто твой код у мя почему-то не заработал...

program massiv;
uses crt;
var mas,mas2:array[1..10000] of integer;
i,k,n:integer;
begin
clrscr;
randomize;
write ('Введите размер массива ');
readln (n);
write('Исходный массив: ');
for i:=1 to n do
begin
mas[i]:=random(500);
write (mas[i],' ');
if frac(mas[i]/10)*10=5 then
begin
inc(k);
mas2[k]:=mas[i];
end;

end;
writeln; writeln;
write('Новый массив: ');
for i:=1 to k do
write (mas2[i],' ');
readkey
end.
BarracudaSSAT вне форума Ответить с цитированием
Старый 06.01.2009, 00:12   #4
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

К чему вот это:
Код:
if frac(mas[i]/10)*10=5 then
Не лучше-ли так?
Код:
if mas[i] mod 10 = 5 then
MalexG вне форума Ответить с цитированием
Старый 06.01.2009, 00:33   #5
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Цитата:
Не лучше-ли так?
Код:
if mas[i] mod 10 = 5 then
Лутше, если б был масив целых чисел.

BarracudaSSAT,твой вариант немного лучше чем мой

Последний раз редактировалось Teor; 06.01.2009 в 00:53.
Teor вне форума Ответить с цитированием
Старый 06.01.2009, 09:30   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Задан массив А=(0,215; -1.235; 2.36; 1.05; -5.233365);
Выполните поставленную задачу с помощью своей программы.
puporev вне форума Ответить с цитированием
Старый 06.01.2009, 15:10   #7
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

...да я как-то не подумал про дробные числа.
Для дробных чисел у меня не получилось написать программу, так как функция frac как-то криво работает.
Teor вне форума Ответить с цитированием
Старый 06.01.2009, 15:16   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если вводить все числа с одинаковым числом знаков после запятой, то нет проблем, а если разное количество, то у меня тоже не получается, потому что представление дробной части числа в машинном представлении не совпадает с тем что мы вволим, например мы ввели 1,0235 и думаем что последняя цифра 5, а компьютер так не считает, у него где-то в 10м знаке еще цифра есть.
puporev вне форума Ответить с цитированием
Старый 06.01.2009, 16:06   #9
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Интересно, а откуда компьютер берет эту цыфру? Может можно как-то такой "глюк" исправить?
Teor вне форума Ответить с цитированием
Старый 07.01.2009, 02:31   #10
BarracudaSSAT
 
Аватар для BarracudaSSAT
 
Регистрация: 05.01.2009
Сообщений: 8
По умолчанию

MalexG, круто :-D! про mod даже не подумал!!!)))))
BarracudaSSAT вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка про массив - Из массива удалить четные элементы, стоящие после максимального Crookers Общие вопросы C/C++ 4 23.09.2008 18:35
Дан двумерный массив случайных чисел. Построить одномерный из исходного, выбрав из него все числа кратные ProWinD Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2008 19:12
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя