Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритмы циклической структуры с использованием одномерных массивов.
27. В массиве {Aj}, j=1, 2, 10 есть хотя бы один отрицательный элемент. Вычислить произведение элементов в массиве до первого отрицательного. 28. В массивеесть хотя бы один нуль. а) Вычислить произведение элементов массива до первого нуля. б) Вычислить сумму элементов массива до первого нуля. 29. В массиве существуют отрицательный и положительный элементы. Вычислить: а) сумму положительных элементов; б) сумму отрицательных элементов; в) количество положительных элементов; г) количество отрицательных элементов; д) произведение положительных элементов; е) произведение отрицательных элементов; 30. В массиве подсчитать количество элементов, больших 3. 31. Составить программу для вычисления суммы S элементов числовой последовательности А1, А2,..., А10 по формуле S=A1+A2+...+A10. 32. Составить программу для вычисления суммы элементов последовательности целых чисел Р1, Р2,..., Р10, имеющих чётные индексы и произведение элементов последовательности Р1, Р2,..., Р10, имеющих нечётные индексы. Вычисление с хранением 33. Даны действительные числа A1,..., An, B1,..., Bn. Вычислить (A1+Bn)´(A2+Bn-1)´...´(An+B1). 34. Даны действительные числа A1, А2,..., A2n. Получить: а) A1, An+1, A2, An+2,..., An, A2n; б) A1, A2n, А2, A2n-1, A3,..., An, An+1; в) A1+A2n, A2+A2n-1,..., An+An+1. 35. Даны действительные числа A1, А2,..., A17. Получить: а) A17, A1, A2,..., A16; б) A11, A12,..., A17, A1, A2,..., A10; в) A11, A12,..., A17, A10, A9,..., A1; г) A1, A3,..., A17, A2, A4,..., A16. 36. Даны действительные числа A1,..., Аn. Если в результате замены отрицательных элементов последовательности их квадратами элементы будут образовывать неубывающую последовательность, то получить сумму элементов исходной последовательности; в противном случае их произведение. 37. Даны действительные числа A1,..., А10. Все числа попарно различны. Поменять в этой последовательности местами: а) наибольший и наименьший элементы; б) наибольший и последний элементы. 38. Дано натуральное число n. Сколько различных цифр встречается в его десятичной записи. 39. Даны действительные числа A1,..., А10. Вычислить A1+A22+...+A1010.
Практическая работа № 10
Тема: «Сортировка одномерных массивов»
Рассмотрим массив целых или действительных чисел А1,..., Аn. Пусть требуется переставить элементы этого массива так, чтобы после перестановки они были упорядочены по не убыванию А1<=A2<=...<=An. Эта задача называется задачей сортировки или упорядочения массива. Для решения этой задачи можно воспользоваться следующими алгоритмами:
I. Сортировка выбором Найти элемент массива, имеющий наибольшее значение, переставить его с первым элементом, затем проделать то же самое, начав со второго элемента и т.д. II. Сортировка обменами (метод пузырька) Последовательным просмотром чисел А1,..., Аn найти наименьшее i такое, что А(i)>A(i+1). Поменять местами A(i) и A(i+1), возобновить просмотр с элемента A(i+1) и т.д. Тем самым наибольшее число передвинется на последнее место. Следующие просмотры начинать опять сначала, уменьшая на единицу количество просматриваемых элементов. Массив будет упорядочен после просмотра, в котором участвовали только первый и второй элементы. III. Сортировка простыми вставками Просматривать последовательно A2,..., An и каждый новый элемент Ai вставлять на подходящее место в уже упорядоченную совокупность A(1)...A(i-1). Это место определяется последовательным сравнением Ai с упорядоченными элементами A(1),..., A(i-1).
Примеры решений задач 1. Сортировка отбором. Procedure otbor (Var x:arr; dlina: integer); Var mal: dano; Min, k,j: integer; Begin For k:=1 to dlina-1 do Begin Mal:=x[k]; Min:=k; For j:=k+1 to dlina do If x[j]<mal then Begin Mal:=x[j]; Min:=j; End; X[min]:=x[k]; X[k]:=mal End End
2. Сортировка методом пузырька. Procedure Bubble (Var X:massiv; DLINA :integer); Var A:dannoe; J,R: integer; ZAMENA: boolean; Begin Repeat ZAMENA:= false; For J:=2 to R do If X[j-1]>X[J] then
Begin A:=X[J-1]; X[J-1]:=X[J]; X[J]:=A; ZAMENA:= true End; R:=R-1 Until not ZAMENA; End. 3. Сортировка методом простых вставок. Procedure simpins (Var a:arr); Var j,j,k: word; T: integer; Begin For i:=2 to n do Begin T:=a[i]; J:=1; While (t>=a[j]) and (j<i) do inc (j); If j<>i then For k:=j-1 downto j do a[k+1]=a[k]; A[j]:=t End; End; End. 4.Задача поиска места элемента. Для решения задачи полезен алгоритм, который называется алгоритмом деления пополам. Пусть дан упорядоченный по неубыванию массив целых или действительных чисел А1<=А2<=Аn. Пусть дано некоторое число В (соответственно целое или действительное), для которого нужно найти такое место среди чисел А1,..., Аn, чтобы после вставки числа В на это место упорядоченность не нарушилась. Если вследствие равенства между собой некоторых элементов массива число В можно вставлять на разные места, то требуется определить ближайшее к началу массива место. Список задач 1. Даны действительные числа А1,..., Аn, Р, натуральное число k (A1<=...<=An, k<=n). Удалить из А1,..., Аn элемент с номером k (т.е. Ak) и вставить элемент. равный Р, так, чтобы не нарушилась упорядоченность. 2. Даны действительные числа С1,..., Сp, D1,..., Dq. (С1<=C2<=...<=Сp, D1<=D2<=...Dq). Ввести единицу упорядоченности, получив F1, F2,..., Fp+q, что F1<=F2<=...<=Fp+q. Число сравнений не должно превосходить p+q. 3. Пусть дан массив А1,..., Аn. Требуется переставить А1,..., Аn так, чтобы в начале в массиве шла группа элементов, больших того элемента, который в исходном массиве располагался на первом месте, затем сам этот элемент, потом - группа элементов, меньших или равных ему. 4. Даны натуральное число n, целые числа А1,..., Аn. Найти наибольшее значение, встречающееся в последовательности А1,..., Аn, после выбрасывания одного из членов со значением max(A1,..., An). 5. Дана действительная матрица размером m´n; упорядочить строки матрицы: а) по неубыванию значений первых элементов строк; б) по невозрастанию сумм элементов строк; в) по неубыванию значений наименьших элементов строк; г) по невозрастанию значений наибольших элементов строк. В заданиях б, в, г разрешается дополнительно определить числовой массив А1,..., Аn.
Практическая работа № 11
Тема: «Двумерные массивы. Преобразование и построение матриц»
Двумерные массивы являются аналогами матриц. Первый индекс элемента двумерного массива определяет номер строки, а второй – номер столбца, на пересечении, которых расположен элемент. Строки и столбцы нумеруются либо от единого заранее установленного минимального значения индекса, либо от граничного значения, заданного одновременно с объявлением массива.
Для задания значений двухмерного массива можно воспользоваться процедурой с использованием датчика случайных чисел, данной в лабораторной работе №8. Например: Program Array_Full; Const n=10; Type mas = array [1..n, 1..n] of Integer; Var m:mas; Procedure Enter (Var tabl: mas); Var i, j: Integer; Begin For i:= 1 to n do For j:= 1 to n do tabl[i,j]:=Random(10); End; Begin Randomize; Enter (m); End. С помощью процедуры Enter осуществляется ввод двумерного массива размерностью 10´10 случайными числами из диапазона от 0 до 10. Задание диапазона значений определяется константой n=10. Описание двухмерного массива производится следующим образом: Const n=<ранг матрицы>; Type matr= array [1..n,1..n] of <тип элементов матрицы>; Var <имя матрицы>: matr; Примеры решений задач 1. Процедура ввода матрицы. Procedure Enter; Var ii, jj: integer; Begin For jj:=1 to n do For ii:=1 ot n do write('g[',ii,',',jj,']=>');readln (g[ii,jj]); End; 2. Процедура вывода матрицы на экран. (В данной процедуре используется процедура GotoXY, содержащаяся в модуле CRT. Поэтому необходимо при использовании этой процедуры указать имя библиотеки CRT в разделе описания библиотек Uses) Program Name_Program; Uses Crt; ... Procedure List; Var ii, jj: integer; Begin For jj:=1 to n do For ii:=1 to n do begin gotoxy(3*ii, jj); write (g[ii,jj]); end; End; Список задач 1. Даны действительная матрица размера n´(n+1), действительные числа A1,...,An+1, B1,..., Bn+1, натуральные числа p,q (p<=n, q<=n+1). Образовать новую матрицу размера (n+1)x(n+2) вставкой после строки с номером p данной матрицы новой строки с элементами A1,..., An+1, и последующей вставкой после столбца с номером q нового столбца с элементами B1,..., Bn+1. 2. Даны целые числа A1,..., A10, целочисленная квадратная матрица порядка n. Заменить нулями в матрице те элементы с четной суммой индексов, для которых имеются равные среди A1,..., A10. 3. Даны действительные числа A1,..., An, действительная квадратная матрица порядка n (n>=6). Получить действительную матрицу размера n´(n+1), вставив в исходную матрицу между пятым и шестым столбцами новый столбец с элементами A1,..., An. 4. Дана целочисленная матрица размера 6х9. Найти матрицу, получающуюся из данной: а) перестановкой столбцов - первого и последнего, второй с предпоследним и т.д.; б) перестановкой строк - первого и последнего, второй с предпоследним и т.д.; 5. Дана действительная матрица [Aij], i, j=1,..., n. Получить действительную матрицу [Bij], i, j=1,..., n, элемент Bij который равен сумме элементов данной матрицы, расположенных в области, определяемой индексами i,j так, как показано на рис. (область заштрихована).
а) б) в) г) Сходным образом можно рассмотреть вместо суммы элементов их произведение, наибольшее значение, наименьшее значение. 6. Дана действительная квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n, столбец с номером n сделать строкой с номером n. 7. Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки 1-й матрицы на наибольшее из значений элементов соответствующей второй матрицы; б) прибавлением к элементам каждого столбца 1-й матрицы произведения элементов соответствующих строк второй матрицы. 8. В данной действительной матрице mxn (n>=3, m>=3) поменять местами: а) строки с номерами 2 и n-1; б) столбцы с номерами 3 и n-2. 9. Даны целочисленная матрица nx3, целые числа k, l (1<=k<=n, 1<=l<=n, k<>l).Преобразовать матрицу так, чтобы строка с исходным номером k непосредственно следовала за строкой с исходным номером l, сохранив порядок следования остальных строк. 10. В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением. 11. Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей. 12. Построить квадратную матрицу порядка 2n.
13. Дано действительное число х. Получить квадратную матрицу порядка n=10. Середина заполняется нулями.
14. Даны действительные числа A1,..., An. Получить квадратную матрицу порядка n.
15. Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1, 2,..., 49, расположенные в ней по спирали.
16. Дана действительная квадратная матрица порядка 7. Найти последовательность действительных чисел B1,..., B49, получающихся при чтении данной матрицы по спирали (см. предыдущую задачу). 17. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n´n, и соответствии с рис а) или б). 18. Получить квадратную матрицу порядка n; a) б) в) г) д е) ж) з) и) к) л) м) н) Практическая работа № 12
Тема: «Матричная алгебра»
В данной лабораторной работе рассматриваются действия, совершаемые над матрицами. Задача: найти произведение двух матриц. и . Решение: Вычислим произведения АВ. Согласно правилу умножения матриц элемент матрицы АВ, стоящий в i-ой строке и j-м столбце (сij) равен сумме произведений элементов i-й строки матрицы А на соответствующие элементы j- го столбца матрицы В. Так, например,
С23=(-1)*3+(-2)*6+(-4)*9=-51 Подсчитав таким образом все элементы матрицы АВ, находим: . Мы видим на этом примере, что произведение матриц зависит от порядка сомножителей. Примеры решений задач 1. Составить программу нахождения произведения двух матриц А и В размером 2х3 и 3х3 соответственно. Элементы результирующей матрицы С (размером 2х3) определяются по формуле: , где n - число строк матрицы А; m – число столбцов матрицы А и число строк матрицы В; p – число столбцов В. В общем случае результирующая матрица С имеет n строк и p столбцов. Program UM; Var A,C,: aray [1..2,1..3] of real; B: aray [1...3,1..3] of real; I,J,K: integer; Begin For I:=1 to 2 do For J:=1 to 3 do Read (A[I,J]); For I:=1 to 3 do For J:=1 to 3 do Read (B[I,J]); For I:=1 to 2 do For J:=1 to 3 do Begin C[I,J]:=0; For K:=1 to 3 do C[I,J]:=C[I,J]+A[I,K]*B[K,J]; End; Begin Writeln (‘Массив С’); For J:=1 to 3 do Write (C[I,J]:12:5) End End. 2. Составьте программу вычисления скалярного произведения двух векторов U и V, состоящих из четырех элементов каждый, по формуле: . Вычислите длину вектора .
Program SP; Type N:1..4; Var S,DV: real; U,V: array [N] of real; I:N; Begin For I:=1 to 4 do Read (V[I]); For I:=1 to 4 do Readln (U[I]); S:=0; DV:=0; For I:=1 to 4 do Begin S:=S+U[I]*V[I]; DV:=DV+U[I]*V[I]; End; DV:= sqrt (DV ); Writeln (‘Скалярное произведение=’,S); Writeln (‘Длина вектора=’);DV End.
Список задач 1. Даны матрицы А и В размера k´m и m´l соответственно. Найти произведения АВ. 2. Дана квадратная матрица порядка n. Получить матрицу А2. 3. Даны матрицы А и В порядка n. Получить матрицу АВ-ВА. 4. Дана квадратная матрица А порядка n. Получить матрицу АВ; элементы матрицы В вычисляются по формуле: а) dij=1/(i+j-1);б) в) 5. Даны квадратная матрица А порядка n и вектор с n элементами. Получить вектор: а) Ab; б) A2b; в) (A-E)b, где Е - единичная матрица порядка n. 6. Дана квадратная матрица порядка n. Получить вектор Ab, где вектор b- вектор, элементы которого вычисляются по формуле: а) bi=1/(i2+2); б) 7. Даны квадратная матрица А порядка n и вектор х и у с n элементами. Получить вектор А(х+у). 8. Даны квадратная матрица А, В, С порядка n. Получить матрицу (А+В)С. 9. Даны квадратные матрицы А и В порядка n. Получить матрицу 10. Дана матрица А размера m´n. Получить транспонированную матрицу А (m´n). 11. Дана матрица А: а) размера m´m; б) размера m´n; Получить матрицу АА (m´m). 12. След квадратной матрицы равен сумме элементов, расположенных на главной диагонали. Даны квадратная матрица порядка m, натуральное число n. Вычислить следы матриц А, А2,..., Аn. 13. Даны целые числа А1, А2, А3. Получить целочисленную матрицу [Bij], i, j = 1, 2, 3, для которой Bij=Ai-3·Aj. 14. Получить [Aij], i=1, 10, j=1, 12, где Aij=i+2·j. 15. Получить [Aij], i=1, n, где Aij=1/(i+j). 16. Даны натуральное число n, действительная матрица n´9. Найти среднеарифметическое: а) каждого из столбцов; б) каждого из столбцов, имеющих четные номера. 17. Дана действительная матрица n´m. Определить числа B1,..., Bm, равные соответственно: а) сумме элементов строк; б) произведениям элементов строк; в) наименьшим значениям элементов строк; г) значениям среднеарифметических элементов строк; д) разностям наибольших и наименьших значений строк. 18. Дана матрица n´n. Получить последовательность главной диагонали. 19. Дана матрица 6´9. Найти среднеарифметическое наибольшего и наименьшего значений ее элементов 20. Дана матрица n´m. Найти сумму наибольших значений элементов ее строк. 21. В данной действительной квадратной матрице n´n найти сумму элементов строки, в которой расположен элемент с наибольшим значением. Предполагается, что такой элемент единственный. Практическая работа № 13
|
|||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 252; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.36.203 (0.128 с.) |