14.11.2012, 14:12 | #1 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Векторы в Паскале
Код:
Program Variant_0; Uses Crt; Const n = 10; Var i, v_min, v_max, i_max, max, i_min, min : integer; vector : Array [1..n] Of Integer; Begin Randomize; WriteLn('laba 6 part 1'); WriteLn('is-12-2'); WriteLn('Kapustin Victor'); WriteLn; WriteLn('zadaite znacheniya'); write('n='); readln; Write('v_min='); ReadLn(v_min); Write('v_max='); ReadLn(v_max); For i:=1 To n Do vector[i]:=Random(v_max-v_min + 1) + v_min; WriteLn; WriteLn('ishodn vectr:'); For i:=1 To n Do Write(vector[i]:5); WriteLn; max:= vector[1]; i_max:= 1; min:= vector[1]; i_min:= 1; For i:=2 To n Do Begin If (vector[i] > max) Then Begin max := vector[i]; i_max := i; End; If (vector[i] < min) Then Begin min := vector[i]; i_min := i; End; End; WriteLn; WriteLn('max=', max, ' i_max=', i_max); WriteLn('min=', min, ' i_min=', i_min); vector[i_max]:=min; vector[i_min]:=max; WriteLn; WriteLn('Vector:'); For i:=1 To n Do Write(vector[i]:5); WriteLn; End. |
14.11.2012, 14:12 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Разумеется, на нашем форуме так же нашлись и похожие темы Меню в Паскале Строки в паскале Массив в паскале Функции на Паскале Сортировка в Паскале |
14.11.2012, 14:25 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Прежде всего - решена не та задача: в условии требуется не просто максимальный и минимальный элементы, а вторые по значению. Так, в примере максимальный элемент - 10, а "играет" второй по значению - 7. Тоже и с минимумом. Исправьте.
P.S. Не совсем, правда, понимаю фразу "Предусмотреть случай, когда таких элементов нет" - как это их может не быть? |
14.11.2012, 14:40 | #3 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
тоже не понимаю)) я просто не понимаю как для задать чтобы для 2-го максимально(( неломай мозг это не нужно)и еще вопрос как определить ту или не ту написал формулу vector[i]:=Random(v_max-v_min + 1) + v_min;
Последний раз редактировалось vitjok; 14.11.2012 в 14:47 |
14.11.2012, 15:02 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Легко:
Код:
Program Variant_0; Const n = 10; Var i,v_min,v_max,i_max,max,i_min,min,max2,min2 : integer; vector : Array [1..n] Of Integer; Begin Randomize; WriteLn('laba 6 part 1'); WriteLn('is-12-2'); WriteLn('Kapustin Victor'); WriteLn; WriteLn('zadaite znacheniya'); write('n='); readln; Write('v_min='); ReadLn(v_min); Write('v_max='); ReadLn(v_max); For i:=1 To n Do vector[i]:=Random(v_max-v_min + 1) + v_min; WriteLn; WriteLn('ishodn vectr:'); For i:=1 To n Do Write(vector[i]:4); WriteLn; max:= vector[1]; min:= vector[1]; For i:=2 To n Do Begin If (vector[i]>max) Then max := vector[i]; If (vector[i]<min) Then min := vector[i]; End; max2:= min; i_max:= 1; min2:= max; i_min:= 1; For i:=2 To n Do Begin If (vector[i]>max2) and (vector[i]<max) Then Begin max2 := vector[i]; i_max := i; End; If (vector[i]<min2) and (vector[i]>min) Then Begin min2 := vector[i]; i_min := i; End; End; WriteLn; WriteLn('max2=', max2, ' i_max=', i_max); WriteLn('min2=', min2, ' i_min=', i_min); vector[i_max]:=min2; vector[i_min]:=max2; WriteLn; WriteLn('Vector:'); For i:=1 To n Do Write(vector[i]:4); WriteLn; Readln; End. |
14.11.2012, 15:37 | #5 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо)) а как сделать что бы у меня значения вышли как в задании)) или потому что рандом и постоянно разные вектора?? я правильно понял)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
14.11.2012, 16:19 | #7 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
как не знаю как составить формулу((( что бы менялись эти члены(( простообъясните мне что бы раз и на всегда дошло как это делать((((((((((((((((((((((
|
14.11.2012, 17:26 | #9 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
1. Заполнить квадратный массив massivnn целыми случайными числами в диапазоне от v_min до v_max. Поменять местами главную и побочную диагонали массива. Размер массива n задать константой. Границы диапазона v_min и v_max задать с консоли. Вывести на экран исходный и полученный массивы.
Элементы главной диагонали квадратного массива имеют одинаковые индексы: massivii (i=1…n). Соответствующие им построчно элементы побочной диагонали имеют индексы massivi,n-i+1 . Меняем их местами алгоритмом циклического обмена через третью переменную. Код:
Program Variant_0; Uses WinCrt; Const n = 5; {задание размера массива именованной константой} Var i, j : Word; k, v_min, v_max: Integer; massiv : Array [1..n, 1..n] Of Integer; Begin Randomize; {запуск генератора случайных чисел} WriteLn('Лабораторная работа №6_2'); WriteLn('Вариант №0'); WriteLn('ИС-11-1'); WriteLn('Пупкин Василий'); WriteLn; WriteLn('Задайте диапазон случайных чисел'); Write(‘v_min=’); ReadLn(v_min); Write(‘v_max=’); ReadLn(v_max); For i:=1 To n Do {заполнение массива случайными числами} For j:=1 To n Do massiv[i,j]:=Random(v_max-v_min + 1) + v_min; WriteLn; WriteLn('Исходный массив:'); For i:=1 To n Do {вывод на экран исходного массива} Begin For j:=1 To n Do Write(massiv[i,j]:5); WriteLn; End; WriteLn; For i:=1 To n Do {меняем местами соответствующие элементы} Begin {главной и побочной диагоналей} k:=massiv[i,i]; massiv[i,i]:=massiv[i,n-i+1]; massiv[i,n-i+1]:=k; End; WriteLn; WriteLn('Полученный массив:'); For i:=1 To n Do {вывод на экран полученного массива} Begin For j:=1 To n Do Write(massiv[i,j]:5); WriteLn; End; WriteLn; End. |
14.11.2012, 17:29 | #10 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|