Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 23:42   #1
nubiknovo
 
Регистрация: 19.11.2013
Сообщений: 4
Восклицание Задан массив целых чисел, который может содержать повторяющиеся члены. Вычислить сколько чисел входят в массив более чем по одному

1)Задан массив целых чисел, который может содержать повторяющиеся члены. Выяснить сколько чисел входят в массив более чем по одному разу и подсчитать их количество.
Программа:
Код:
Program zadacha4;
var   y,n:byte; i,j:integer;
a:array[1..100] of integer;
begin
y:=0;
for i:=1 to n do
    begin
    for j:=i to n do
        begin
        if a[i]=a[j] and i<>j then
        y:=y+1;
        end;
    end;
writeln('kol=vo neopred elementov',y);
end.
2)Определить, является ли массив целых чисел упорядоченным по убыванию или возрастанию.
Программа:
Program zadacha3;
var n,f,y,i,j : integer;
    a : array[1..100] of integer;
    begin
       For i :=1 to 10 do
      A [ i ]:= random (10);
    f:=1;
    i:=1;
    for i:=1 to n-1 do
        begin
        j:=i+1;
        if a[i]<a[j] then
           y:=y+1;
        end;
        if y<>i then
           f:=2;
y:=1;
for i:=1 to N do
    begin
    j:=i+1;
    if a[i]>a[j] then
    y:=y+1;
end;
if f<>1 then writeln('цикл упорядочен')
else writeln('цикл не упорядочен');
end.

Помогите найти и исправить ошибки, или найти более легкие варианты программ.

Последний раз редактировалось Stilet; 20.11.2013 в 00:12.
nubiknovo вне форума Ответить с цитированием
Старый 20.11.2013, 00:05   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Лучше введите логические переменные
Код:
var uporWozr,uporUby:Boolean;
// ...
// проверка на возрастание
 uporWozr:=True;
for i:=1 to 99 do   //   зачем вам n , чему она равна ? 
 if a[i]>a[i+1] then
  begin
   uporWozr:=False;
   Break;
  end;
// аналогично надо сделать на убывание
// ..
if uporWozr or UporUby then writeln('цикл упорядочен')
 else writeln('цикл не упорядочен');
И не надо всяких j,f,y

PS Если используете Random, вызовите 1 раз Randomize, а то при каждом запуске будут одни и те же числа. И почему всего 10, как то не интересно. Хотя бы Random(100).

Последний раз редактировалось type_Oleg; 20.11.2013 в 00:13.
type_Oleg вне форума Ответить с цитированием
Старый 20.11.2013, 00:11   #3
nubiknovo
 
Регистрация: 19.11.2013
Сообщений: 4
По умолчанию

Т.е. на убывание будет так?
// ..
uporUby:=True;
for i:=1 to 99 do
if a[i]<a[i+1] then
begin
uporUby:=False;
Break;
end;
// ..

Последний раз редактировалось nubiknovo; 20.11.2013 в 00:20.
nubiknovo вне форума Ответить с цитированием
Старый 20.11.2013, 00:16   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Да, но сначала
Код:
uporUby:=True;
И знак > измените на < , я там сам ошибся, исправил.

Ну вообщем, в одном случае >, в другом <
type_Oleg вне форума Ответить с цитированием
Старый 20.11.2013, 00:22   #5
nubiknovo
 
Регистрация: 19.11.2013
Сообщений: 4
По умолчанию

Спасибо, исправил.
А как первую задачу переделать вы случайно не знаете?
nubiknovo вне форума Ответить с цитированием
Старый 20.11.2013, 00:38   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

После y:=0;
Код:
for i:=1 to 99 do
    for j:=i+1 to 100 do
       if a[i]=a[j] then  y:=y+1;
Не нужны там begin .. end, вы ими обрамляли по одному оператору.
type_Oleg вне форума Ответить с цитированием
Старый 20.11.2013, 00:50   #7
nubiknovo
 
Регистрация: 19.11.2013
Сообщений: 4
По умолчанию

Спасибо, вроде все понял.
nubiknovo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СИ: Задан массив, состоящий из целых положительных и отрицательных чисел. Создать новый массив из положительных элементов старого Любимая Помощь студентам 0 28.05.2013 18:44
assembler. Задан массив А из N чисел. Преобразовать этот массив так, чтобы сначала шли четные числа, а потом – нечетные Transcend Помощь студентам 5 18.03.2013 11:42
Даны числа а1,..,а60. Организовать новый массив из тех чисел, которые входят в последовательность более одного раза (С) Мишаня@ Помощь студентам 0 01.12.2012 22:01
Дан массив из N целых чисел. Получить из него массив чисел по модулю меньших 10 и отсортировать его(язык си++) mitja-zakelidis Помощь студентам 2 15.03.2012 03:10
вывести массив целых чисел в файле по одному в строке newstudent777 Паскаль, Turbo Pascal, PascalABC.NET 12 22.09.2011 22:17