Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 20.01.2011, 17:22   #1 (permalink)
melody
Новичок
 
Регистрация: 20.01.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Много-много задач на Паскале

Пусть дан массив а1,…an.Требуется переставить а1,…an так, чтобы вначале в массиве шла группа элементов, больших того элемента, который в исходном массиве располагается на первом месте, затем – сам этот элемент, потом группа элементов, меньших или равных ему. Число сравнений и перемещений, каждое в отдельности, не должно превышать n-1.
melody вне форума   Ответить с цитированием

Старый 20.01.2011, 17:22
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

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

Как записать на диск много песен?
Слишком много процессов в диспетчере задач
Как можно соединить много html-файлов?
Много-много вопросов
Кто хочет заработать много денег?
Слишком много весит папка Касперского 2009

Старый 20.01.2011, 17:32   #2 (permalink)
melody
Новичок
 
Регистрация: 20.01.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

2)Даны действительные числа а1, а2,…аn.Поменять местами наибольший и наименьший элементы
3)Даны действительные числа a1,…an,p,натуральное число k(k<=n).Упорядочить элементы массива А по убыванию. Удалить из a1,…an элемент с номером k (т.е. ak) и вставить элемент, равный р, так, чтобы не нарушилась упорядоченность.
4)Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов первой и последней строк.
5)Дана действительная квадратная матрица порядка n. Выяснить, верно ли, что наибольшее из значений элементов главной диагонали больше, чем наименьшее из значений элементов побочной диагонали.
melody вне форума   Ответить с цитированием
Старый 21.01.2011, 09:18   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от melody Посмотреть сообщение
4)Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов первой и последней строк.
Данная программа производит поиск максимального значения и выводит его на экран в экспоненциальной форме, анализ совпадающих значений не производится.
Код:
const n=5;
var matr: array[1..n,1..n] of real;
max: real;
i,j: integer;
begin
{Filling an  array}
for i:=1 to n do 
for j:=1 to n do begin
writeln('Enter the  current value of an array element');
readln(matr[i,j]); end;
{find  the  maximum element of the first and last row}
max:=matr[1,1];
for i:=1 to n do begin
if matr[1,i]>max then max:=matr[1,i];
if matr[n,i]>max then max:=matr[n,i];
end;
writeln('maximum  value  among  the  elements of the first and last row is ',max);
readln;
end.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 21.01.2011, 09:40   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от melody Посмотреть сообщение
2)Даны действительные числа а1, а2,…аn.Поменять местами наибольший и наименьший элементы
Данная программа анализирует введенные значения, ищет минимальный и максимальный элементы, меняет их местами и выводит получившийся массив на экран. Должен заметить, что в программе не реализован механизм поиска совпадающих минимальных и максимальных значений, а заменяются последние из найденных. Для реализации этого механизма следовало бы завести еще два массива для сохранения номеров максимальных и минимальных значений и анализировать массив для их заполнения повторно; для замены же нужно было бы менять значения в дополнительном цикле.
Код:
const n=10;
var a: array[1..n] of real;
min, max, lapse: real;
n_min, n_max, i: integer;
begin 
{Filling an  array}
for i:=1 to n do begin
writeln('Enter the  current value of an ',i,' array element'); 
readln(a[i]); end;
{Search for the maximum and minimum values of the elements in the  array  and their numbers}
n_min:=0; n_max:=0;
min:=a[1];
max:=a[1];
for i:=2 to n do begin
if a[i]<=min then begin n_min:=i; min:=a[n_min]; end;
if a[i]>=max then begin n_max:=i; max:=a[n_max]; end;
end;
lapse:=a[n_min]; 
a[n_min]:=a[n_max]; 
a[n_max]:=lapse; 
{output values of the elements on the screen}
for i:=1 to n do
writeln(a[i]);
readln;
end.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 21.01.2011, 10:56   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от melody Посмотреть сообщение
Пусть дан массив а1,…an.Требуется переставить а1,…an так, чтобы вначале в массиве шла группа элементов, больших того элемента, который в исходном массиве располагается на первом месте, затем – сам этот элемент, потом группа элементов, меньших или равных ему. Число сравнений и перемещений, каждое в отдельности, не должно превышать n-1.
Например, так:
Код:
CONST
 N=10;
VAR
 A,B,Num_L,Num_H:Array[1..N] of Byte;
 N_lo,N_hi:Byte;
 i:Integer;
BEGIN
 Randomize;
 For i:=1 to N do
  A[i]:=random(100);
 N_lo:=0;
 N_hi:=0;
 For i:=2 to N do
  if A[i]>A[1] then
   begin
    Inc(N_hi);
    Num_H[N_hi]:=i;
   end
  else
   begin
    Inc(N_lo);
    Num_L[N_lo]:=i;
   end;
 For i:=1 to N_hi do
  B[i]:=A[Num_H[i]];
 B[N_hi+1]:=A[1];
 For i:=1 to N_lo do
  B[N_hi+1+i]:=A[Num_L[i]];
 For i:=1 to N do
  Write(A[i]:4);
 Writeln;
 For i:=1 to N do
  Write(B[i]:4);
 Writeln;
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:33.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.