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

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

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

> Школьная задача, Массив (последовательность чисел)
сообщение
Сообщение #1





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

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


Задали задачу, написал код но что то не проходит ( последний раз писал 7 лет назад)
Дана последовательность целых чисел a1, a2, ..., am . Постройте на ее основе новую
последовательность, содержащую только те числа, которые в исходную
последоватеьность входят по одному разу.
uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
n,i,j:byte;
f,k:boolean;
begin
clrscr;
randomize;
repeat
write('Размер последовательности A до ',nmax,'n=');
readln(n);
until n in [1..nmax];
writeln('Последовательнось:');
for i:=1 to n do
begin
a[i]:=random(10);
write(a[i]:3);
end;
writeln;
writeln;
writeln('Входят по одному разу:');
k:=false;
for i:=1 to n do
begin
f:=true;
for j:=1 to n do
if(a[i]=a[j])and(i<>j) then f:=false;
if f then
begin
write(a[i]:3);
k:=true;
end;
end;
if not k then write('Таких чисел нет');
end.

Что то не пойму в чем дело,почему не работает, задачу помогал делать друг (основная работа его)
Буду благодарен за помощь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

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

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


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

Другие способы будут или диннее (сначала отсортировать а потом считать количество вхождений) или специфичны для конкретного набора данных (сортировка подсчётом - когда диапазон чисел в наборе очень ограничен). Наверняка есть ещё другие алгоритмы.

Подведу итог - короче отформатированный исходник уже не станет (только длиннее), и это и есть окончательная редакция программы для этой задачи.

--------------------
Может быть, топикстартер не может выразить мысль хочет сказать, что выходная последовательность должна быть сохранена в отдельном массиве, а уже потом выведена на экран? Тогда
uses
crt;
const
nmax = 100;
var
a, b: array [1..nmax] of integer;
n,i,j, k: byte;
f: boolean;
begin
clrscr;
randomize;
repeat
Write('Размер последовательности A до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Последовательнось:');
for i:=1 to n do
begin
a[i]:=random(10);
Write(a[i]:3, ' ');
end;
writeln;
writeln;
k:=0; {индекс в массиве b}
for i:=1 to n do
begin
f:=true;
for j:=1 to n do
if (a[i]=a[j])and(i<>j) then f:=false;
if f then
begin
Inc(k);
b[k]:=a[i];
end;
end;
WriteLn;
writeln('Входят по одному разу:');
if k=0 then Write('Таких чисел нет');
for i:=1 to k do
Write(b[i]:3);
WriteLn;
readln;
end.


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

Сообщений в этой теме
Сержик   Школьная задача   8.04.2012 3:11
Федосеев Павел   Отсортируй исходную последовательность. Дальше про…   8.04.2012 13:59
Сержик   начинаю прогонят код в RUN выходит окно размер пос…   8.04.2012 19:40
Федосеев Павел   Добавь в конце readln .............. write(…   8.04.2012 19:46
Сержик   Спасибо так стало получше, но что то, несооответст…   8.04.2012 21:43
Федосеев Павел   Условие выполняется? Что не соответствует? Если …   8.04.2012 22:17
Гость   Вот так получается   8.04.2012 22:37
Гость   s019.radikal.ru/i608/1204/ba/ea9d80280088.jpg   8.04.2012 22:38
TarasBer   s019.radikal.ru/i608/1204/ba/ea9d80280088.jpg ЖО…   8.04.2012 23:36
Федосеев Павел   Стесняюсь спросить, я что поступает на вход програ…   8.04.2012 22:48
Сержик   Вообще должно быть так вводишь последовательность …   8.04.2012 23:17
Федосеев Павел   Сержик, да. Ввод массива вручную: for i:=1 to 10 …   9.04.2012 2:17
Сержик   А можете поправить код что бы последовательность в…   9.04.2012 2:25
Krjuger   Федосеев Павел png хуже качеством,но занимает мест…   9.04.2012 2:44
TarasBer   png хуже качеством PNG вообще не теряет качест…   9.04.2012 13:21
IUnknown   Никогда не был PNG хуже качеством. JPEG постоянно…   9.04.2012 5:09
Сержик   Нужно решить задачу в начале топика. Мой код автом…   9.04.2012 19:56
Федосеев Павел   Исправленный под требование ручного ввода исходник…   9.04.2012 23:33
Сержик   Всем большое СПАСИБО!!!!! Особ…   10.04.2012 0:33
Lapp   Всем большое СПАСИБО!!!!! Серж…   10.04.2012 6:27
Сeржик   Может кто поможет составить блок схему, какой день…   13.04.2012 18:58
Сeржик   Может выложить тот код который мне сделала програм…   13.04.2012 20:21
Lapp   Может выложить тот код который мне сделала програм…   14.04.2012 5:18
Сeржик   Вот что у меня получилось. Завтро пойду сдавать. …   15.04.2012 20:38
Гость   Всем спасибо контрольную благополучно сдал. P.S. П…   18.04.2012 1:15


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

 





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