Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Катькаа
1

Добавить за каждым числом с наибольшим значением число с минимальным значением и наоброт.

30.08.2012, 07:01. Показов 827. Ответов 6
Метки нет (Все метки)

если кто-нибудь сможет помочь, то помогите...

1. Даны целые числа a1,..an. Добавить за каждым числом с наибольшим значением число с минимальным значением и наоброт.
2. Даны целые числа a1,..an. Определить,имеются ли в последовательности совпадающие числа. Если да,то вывести порядковые номера элементов одной из найденных пар.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2012, 07:01
Ответы с готовыми решениями:

Поменять местами столбец с наибольшим значением со столбцом с наименьшим значением
в массиве В(3,3) поменять местами столбец , содержащий наиб. значение со столбцом, содержащим наим....

В матрице размером NxM поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением.
Помогите пожалуйста!!!

Поменять столбец матрицы А с наибольшим значением со столбцом матрицы В с наименьшим значением
Даны две целочисленные матрицы A и B размером M на N, все элементы которых различны. Поменять...

Отметить индексы всех элементов матрицы с наибольшим значением
В данной квадратной матрицы целых чисел порядка n отметить индексы всех элементов с наибольшим...

6
Модератор
63893 / 47370 / 32662
Регистрация: 18.05.2008
Сообщений: 114,900
30.08.2012, 09:33 2
1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses crt;
const nmax=50;
var a:array[1..2*nmax] of integer;
    n,i,mn,mx,j:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(20);
  write(a[i]:4);
 end;
writeln;
mn:=a[1];
mx:=a[1];
for i:=1 to n do
 begin
  if a[i]<mn then mn:=a[i];
  if a[i]>mx then mx:=a[i];
 end;
writeln('Минимальный элемент=',mn);
writeln('Максимальный элемент=',mx);
i:=1;
while i<=n do
if(a[i]=mn)or(a[i]=mx) then
 begin
  n:=n+1;
  if i=n-1 then
   begin
    if a[i]=mn then a[n]:=mx
    else if a[i]=mx then a[n]:=mn;
    break;
   end
  else
   begin
    for j:=n downto i+2 do
    a[j]:=a[j-1];
    if a[i]=mn then a[i+1]:=mx
    else if a[i]=mx then a[i+1]:=mn;
    i:=i+2;
   end
 end
else i:=i+1;
writeln('Добавление элементов:');
for i:=1 to n do
write(a[i]:4);
readln
end.
Добавлено через 14 минут
2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,i1,i2,j:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(50);
  write(a[i]:4);
 end;
writeln;
i1:=0;
i2:=0;
i:=1;
while(i<n) and(i1=0) do
 begin
  j:=i+1;
  while(j<=n)and(i1=0) do
  if a[j]=a[i] then
   begin
    i1:=i;
    i2:=j;
   end
  else j:=j+1;
  if i1=0 then i:=i+1;
 end;
if i1=0 then write('Нет одинаковых чисел')
else write('Пара одинаков чисел, равных ',a[i1],' имеют индексы ',i1,' и ',i2);
readln
end.
0
2 / 2 / 1
Регистрация: 30.08.2012
Сообщений: 38
30.08.2012, 12:59 3
Что-то вторая задачи через чур умно сделана. До конца так и не понял. Вот попробовал сделать проще:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program sovpadenie;
CONST n=20;
LABEL finish;
TYPE mas=ARRAY [1..n] of integer;
var  i,j: byte;
     a: mas;
     ind: boolean;
BEGIN
    randomize;
    for i:=1 to n DO
      begin
            a[i]:=random(10);
            write(' ',a[i]);
      end;
    writeLN;
    ind:=false;
 
    for i:=1 to n DO
     for j:=2 to n DO
      if i<>j then
       if a[i]=a[j] then
         begin
           if ind then GOTO finish;
           writeLN('Одинаковый числа с порядковыми номерами', i,' i ',j);
           ind:=true;
         end;
 
finish:
READLN
END.
0
1294 / 466 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
30.08.2012, 15:24 4
Цитата Сообщение от dan25 Посмотреть сообщение
for i:=1 to n DO
for j:=2 to n DO
лучше
Pascal
1
2
for i := 1 to n-1 do
 for j := i + 1 to n do
Добавлено через 2 минуты
и метки лучше вообще не использовать
Pascal
1
2
3
4
5
6
7
8
9
10
11
for i := 1 to n - 1 do 
 begin
 if ind then break;
 for j := i + 1 to n do
  if a[i] = a[j] then
   begin
   writeln(a[i],' ',a[j]);
   ind := true;
   break;
   end;
 end;
0
2 / 2 / 1
Регистрация: 30.08.2012
Сообщений: 38
31.08.2012, 03:45 5
1. согласен
2. На счет меток тоже согласен - плохой тон. Но без GOTO, что-то голова не срабатывала :-)
3. А что у Вас означает 3-я строка:
if ind then break;
0
3450 / 2388 / 2135
Регистрация: 04.12.2011
Сообщений: 3,965
31.08.2012, 06:15 6
Цитата Сообщение от dan25 Посмотреть сообщение
А что у Вас означает 3-я строка:
Если булева переменная ind = истина, то немедленно выходим из цикла
0
Модератор
63893 / 47370 / 32662
Регистрация: 18.05.2008
Сообщений: 114,900
31.08.2012, 08:54 7
Цитата Сообщение от dan25 Посмотреть сообщение
Что-то вторая задачи через чур умно сделана. До конца так и не понял
Цитата Сообщение от dan25 Посмотреть сообщение
На счет меток тоже согласен - плохой тон. Но без GOTO, что-то голова не срабатывала :-)
Вот когда начнет срабатывать без меток, то и мой код поймешь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2012, 08:54

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Преобразовать каждый из массивов, заменив элементы с наибольшим значением
Дан файл F, элементами которого являются целочисленные массивы a0,a1,a2,a3,a4. Требуется...

Все члены, расположенные за членом с наибольшим значением , замените 0.5
Ребят(девушки).я написал програму но... Вот условие: Program zdom; uses crt; const n=10; ...

В матрице найти строку с наибольшим значением чётного числа
Найти строку с наибольшим значением чётного числа для произвольной матрицы. вывести строку на...

Все члены, следующие за членом с наибольшим значением, заменить на 0,5
Дано действительные числа A1,...,An и B1,...,Bn. В последовательности A1,...,An и в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.