Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB4.DOC
Скачиваний:
3
Добавлен:
12.02.2015
Размер:
207.87 Кб
Скачать

Задания для выполнения

I. Произвести решение уравнений методом Гаусса, методом простой итерации и методом Зейделя.

1)

20,9 x1 + 1,2 x2 + 2,1 x3 + 0,9 x4 =21,70

1,2 x1 + 21,2 x2 + 1,5 x3 + 2,5 x4 =27,46

2,1 x1 + 1,5 x2 + 19,8 x3 + 1,3 x4 =28,76

0,9 x1 + 2,5 x2 + 1,3 x3 + 32,1 x4 =49,72

2)

10,9 x1 + 1,2 x2 + 2,1 x3 + 0,9 x4 = 7,0

1,2 x1 + 11,2 x2 + 1,5 x3 + 2,5 x4 = 5,3

2,1 x1 + 1,5 x2 + 9,8 x3 + 1,3 x4 =10,3

0,9 x1 + 2,5 x2 + 1,3 x3 + 12,1 x4 =24,6

3)

4 ,00 x1 + 0,24 x2 - 0,08 x3 + 0,16 x4 = 8

0,09 x1 + 3,00 x2 - 0,15 x3 - 0,12 x4 = 9

0,04 x1 - 0,08 x2 + 4,00 x3 + 0,06 x4 =20

0,02 x1 + 0,06 x2 + 0,04 x3 - 10,00 x4 = 1

4)

8,714 x1 + 2,180 x2 - 5,684 x3 = 49,91

-1,351 x1 + 10,724 x2 - 5,224 x3 = 50,17

0,040 x1 - 0,459 x2 + 6,799 x3 = 32,68

5)

3 ,82 x1 + 1,02 x2 - 0,75 x3 + 0,81 x4 = 15,655

1,05 x1 + 4,53 x2 - 0,98 x3 - 1,53 x4 = 22,705

0,73 x1 - 0,85 x2 + 4,71 x3 + 0,81 x4 = 23,480

0,88 x1 + 0,81 x2 + 1,28 x3 - 3,58 x4 = 16,110

II. Представить преподавателю 2-е рабочие программы для работы с одномерными и 3 – для работы с двумерными массивами из списка задач (задачи 1-52).

III Представить преподавателю 1 программу обработки файлов (задачи 53-60).

Список задач

1. Даны два числа М и N и два упорядоченных массива A[1]A[2]≤....A[M] и B[1]B[2]≤....B[M] Образовать из этих элементов упорядоченный массив

C[1]C[2]....C[M+N].

Указание. Эта важная задача принципиально должна быть выполнена за M+N действий. Возьмем из А и В по первому элементу. Меньший из них занесем в С и за­меним следующим из того же массива. Снова выберем меньший из двух, занесем в С и т.д. После каждого сравнения в С добавляется элемент - значит, сравнений будет меньше, чем M+N . Нужно только позаботиться о том, чтобы программа работала верно и при исчерпании одного из массивов.

2. В массиве Х[1..N] каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы и. наконец, все двойки (дополнительного массива не заводить!).

3. Дан двухмерный массив А[1..m,1..n]. Написать программу построения одно­мерного массива В[1..m], элементы которого соответственно равны а) суммам элемен­тов строк, б) произведениям элементов строк, в) средним арифметическим элементов строк.

4. Найти наибольший элемент данного массива и указать номер этого элемента.

5. Расположить элементы данного массива в обратном порядке (первый элемент меняется с последним, второй - с предпоследним и т.д. до середины; если массив со­держит нечетное количество элементов, то средний остается без изменения).

6. В данном массиве поменять местами элементы, стоящие на нечетных местах, с элементами, стоящими на четных местах

7. Найти сумму элементов, стоящих на четных местах в заданном массиве.

8. Элементы массива А записать в виде массивов В и С, причем в массив В запи­сать элементы, стоящие на нечетных местах в массиве А, а в массив С записать элемен­ты, стоящие на четных местах в массиве А

9. Определить, сколько чисел входят в данный массив только по одному разу (более, чем по одному разу).

10. Массив А[1..30,1..7] содержит два (и только два) одинаковых числа. Требу­ется напечатать их индексы. (Обратите внимание на то, чтобы никакой элемент массива не сравнивался сам с собой)

11. Массив А[1..5,1..7] содержит вещественные числа. Требуется ввести целое число К и вычислить сумму элементов А[I,J], для которых I+J=K. Прежде, однако сле­дует убедиться, что значение К позволяет найти решение, в противном случае нужно напечатать сообщение об ошибке.

12. Заполнить двухмерный массив Т[1..n,1..n] последовательными целыми чис­лами от 1 до n2, расположенными по спирали, начиная с левого верхнего угла и про­двигаясь по часовой стрелке,

1 2 3 4 5 6

20 21 22 23 24 7

19 32 33 34 25 8

18 31 36 35 26 9

17 30 29 28 27 10

16 15 14 13 12 11

13. Дан массив А[1..N,1..N]. Составить программу, которая прибавила бы каж­дому элементу данной строки элемент, принадлежащий этой строке и главной диаго­нали

14. В данном одномерном массиве целых чисел найти максимальное значение и все номера членов последовательности, равных ему.

15. В данном двухмерном массиве А[1..n,1..n] с целыми коэффициентами для каждой строки найти максимальное значение элемента в этой строке, напечатать этот элемент и его индексы.

16. В данной последовательности целых чисел переставить члены так, чтобы по­ложительные числа шли в порядке возрастания в начале массива.

17. В данной последовательности целых чисел найти количество различных чет­ных неотрицательных чисел.

18. Написать программу замены положительных элементов вещественного масси­ва Y[1..N] на 0.

19. В данном двухмерном массиве А[1..n,1..n] с целыми коэффициентами для каждого столбца найти минимальное значение элемента в этом столбце, напечатать этот элемент и его индексы.

20. В данном числовом массиве найти число повторений элемента, равного задан­ному.

21. В данной последовательности целых чисел найти количество различных чисел.

22. Найти максимальный элемент среди отрицательных элементов массива А[1..7].

23. Требуется ввести последовательность целых чисел и проверить, есть ли среди них отрицательные. Если они есть, вывести новую последовательность, состоящую из отрицательных членов исходной последовательности, записанных в том порядке, в ка­ком они встречались в исходной.

24. В данной последовательности чисел найти минимальное значение среди по­ложительных элементов и его порядковый номер.

25. Для вещественного массива Y[1..n] определить порядковые номера целых элементов.

26. Для вещественного массива Y[1..n] подсчитать количество его целых элемен­тов.

27. Вычислить след заданной квадратной матрицы A[N,N]. След квадратной мат­рицы - это число, равное сумме элементов главной диагонали.

28. Для вещественного (целого) массива А[1..N] найти сумму всех элементов, имеющих: а) четные порядковые номера; б) нечетные порядковые номера.

29. Составить программу, увеличивающую ненулевые элементы линейного веще­ственного массива Y[1..N] на 1.

30. Для линейного вещественного массива Y[1..N] подсчитать количество эле­ментов, имеющих ненулевую дробную часть.

31. Для линейного целого (вещественного!) массива А[1..N] найти сумму всех элементов: а) равных заданному числу 0; б) не равных заданному числу D; в) больше заданного числа D; г) не больше заданного числа 0; д) меньше заданного числа D; е) не меньше заданного числа D.

32. Из массива А[1..N, 1..N] сформировать массив В[1..N2 ], "развернув" его по столбцам (по строкам).

33. Осуществить циклическую перестановку элементов массива: первый элемент должен стать вторым, второй - третьим и т.д., последний - первым. Нового массива не заводить.

34. Написать программу, находящую в двухмерном массиве номера строк с наи­большей суммой элементов.

35. Из массива В[1..8] убрать все отрицательные элементы, заменив их на значе­ния предыдущих элементов.

36. Найти наибольшее из всевозможных попарных произведений элементов мас­сива А[1..4].

37. Определить, имеются ли в массиве А[1 ..4,1..4] строки, равные первой стро­ке.

38. Вывести элементы той строки двухмерного массива Т[1..N,1..М], сумма эле­ментов которой максимальна.

39. Произвести сортировку массива M[1..10] по возрастанию значений элементов. Полученный массив вывести на экран.

40. Написать программу заполнения массива А[1..N,1..N] нулями и единицами в шахматном порядке.

41. Просуммировать элементы двухмерного массива, сумма индексов которых равна заданной константе

42. Заполнить квадратную матрицу NxN последовательными числами от 1 до 100 по спирали.

43. Написать программу, которая меняет местами значения элементов двухмерно­го массива А[1..N,1.. N], симметричных относительно "вертикальной оси" соответст­вующей матрицы.

44. Написать программу замены строк соответствующими столбцами в квадрат­ной матрице А[1..N,1.. N] (транспонирование)

45. Написать программу определения номера строки и столбца двухмерного мас­сива чисел А[1..N,1..N], на пересечении которых находится наибольший элемент.

46. Написать программу, которая позволяет напечатать таблицу Пифагора Табли­ца Пифагора - это квадратная матрица из 10 строк и 10 столбцов, каждый элемент ко­торой определяется формулой: A[i,j]=i*j

47. Заполнить массив А следующим образом:

1 2 . . . 10

11 12 . . . 20

21 22 . . . 30

. . .

91 92 . . . 100

48. Определить, симметрична ли заданная целая квадратная матрица n-го порядка (относительно главной диагонали).

49. Дана матрица NxM Переставляя ее строки и столбцы, переместить наиболь­ший элемент в верхний левый угол.

50. Заполнить массив А следующим образом:

1 2 3 . . . 10

0 1 2 . . . 9

0 0 1 . . . 8

. . .

0 0 0 . . . 1

51. Получить массив В из массива А удалением n-й строка и k-го столбца.

52. Преобразовать массив S, "поворачивая" его вокруг центра на 90 градусов про­тив часовой стрелки.

53. Описать функцию getInt(Name,k) целого типа, возвращающую k-й элемент файла целых чисел с именем Name (элементы нумеруются от 0). Если файл не содержит k-го элемента, то функция возвращает 0. С помощью этой функции вывести пять элементов данного файла с указанными номерами.

54. Описать функцию getLine(Name,k) строкового типа, возвращающую k-ю строку текстового файла с именем Name (строки нумеруются от 0). Если файл не содержит k-й строки, то функция возвращает пустую строку. С помощью этой функции вывести пять строк данного файла с указанными номерами.

55. Описать функцию IntFileSize(Name) целого типа, возвращающую размер файла целых чисел с именем Name. Если файл не существует, то функция возвращает –1. С помощью этой функции определить размер трех файлов с данными именами.

56. Описать функцию TextSize(Name) целого типа, возвращающую число строк в текстовом файле с именем Name. Если файл не существует, то функция возвращает –1. С помощью этой функции определить размер трех файлов с данными именами.

57. Описать процедуру InvertIntFile(Name), меняющую порядок следования элементов файла целого типа с именем Name на противоположный. Если файл не существует или содержит менее двух элементов, то процедура не выполняет никаких действий. Обработать с помощью этой процедуры три файла с данными именами.

58. Описать процедуру SplitIntFile(Name0,k,Name1,Name2), копирующую первые k (>=0) элементов существующего файла целых чисел с именем Name0 в файл Name1, а остальные элементы — в файл Name2 (прежнее содержимое результирующих файлов стирается). Один из результирующих файлов может оказаться пустым. Применить эту процедуру к файлу Name0, используя указанные значения Name1, Name2 и k.

59. Описать процедуру SplitText(Name0,k,Name1,Name2), копирующую первые k (>=0) строк существующего текстового файла с именем Name0 в файл Name1, а остальные элементы — в файл Name2 (прежнее содержимое результирующих файлов стирается). Один из результирующих файлов может оказаться пустым. Применить эту процедуру к файлу Name0, используя указанные значения Name1, Name2 и k.

60. Описать процедуру CodeText(Name,k), шифрующую текстовый файл с именем Name, выполняя циклическую замену каждой русской буквы на букву, расположенную в алфавите на k-й позиции после исходной (0<k<11). Например, при k = 3 "А" перейдет в "Г", "а" — в "г", "Я" — в "В". Букву "ё" в алфавите не учитывать, прочие символы файла не изменять. Используя эту процедуру и зная k, зашифровать1|расшифровать2 данный файл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]