Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов.
За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее.
✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать».
Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами!
Текст программы. { Лабораторная работа N 7 Вариант N 31
PROGRAM KorrMas;
{ Лабораторная работа N 7 Вариант N 31
Обработка массива
А.Я.Умненькая, ст. гр. Я-007 }
TYPE
Massiv = array[1..13, 1..10] of integer;
Stroka = string[30];
CONST Quest1: Stroka='Задайте число строк массива';
Quest2: Stroka='Задайте число столбцов массива';
VAR A: Massiv;
M, N, I, j: integer;
Fin: file of integer;
Fout: file of text;
{ Процедура ввода размеров массива }
PROCEDURE InpMN(Txt: Stroka; MaxK: integer;
Var Kol: integer);
Begin
WriteLn; WriteLn(Txt);
Repeat
Readln(Kol);
If Kol> MaxKol then
Writeln('Можно не более ', MaxK, 'задайте снова');
until Kol< =MaxK;
End;
{ Процедура вывода массива в файл протокола }
PROCEDURE PrintMas(Txt: string; Var Mas: Massiv;
NStr, NKol: integer);
VAR i, j: integer;
Begin
Writeln(Fout, Txt);
For i: = 1 to NStr do
begin
For j: = 1 to Nkol do Write(Fout, Mas[I, j]: 7);
WriteLn(Fout);
end;
End;
{ Функция вычисления суммы четных элементов заданной строки массива }
FUNCTION Sum(Var Mas: Massiv; N, St: integer)
: integer;
VAR j, S: integer;
Begin
S: =0;
For j: =1 to N do
If not Odd(Mas[St, j]) then S: =S+Mas[St, j];
Sum: =S;
End;
BEGIN { Основная программа }
InpMn(Quest1, 13, M);
InpMn(Quest2, 10, N);
Assign(Fout, 'Umnik7.res');
ReWrite(Fout);
WriteLn(Fout, 'Сумма четных элем. в последний столбец');
Assign(Fin, 'D: \LAB1\DATI.BIN');
ReSet(Fin);
Seek(Fin, 32);
for i: =1 to M do
for j: =1 to N do Read(Fin, A[I, j]);
Close(Fin);
PrintMas (' Исходный массив', A, M, N);
for I: =1 to M do A[I, N]: =Sum(A, N, I);
PrintMas (' Обработанный массив', A, M, N);
Close(Fout);
END.
Содержимое набора данных UMNIK7.RES:
Сумма четных элем. в последний столбец
Исходный массив
9 8 0 -7 0 -5 7 -5 5
6 9 9 2 -2 -8 3 -8 -9
8 -4 -4 1 3 6 4 0 -5
4 1 -2 4 2 1 -2 -6 -5
-1 5 0 9 4 -3 -6 -691 885
-709 800 382 -396 -140 -841 923 368 -686
737 624 169 -610 458 -188 -423 126 355
Обработанный массив
9 8 0 -7 0 -5 7 -5 8
6 9 9 2 -2 -8 3 -8 -10
8 -4 -4 1 3 6 4 0 10
4 1 -2 4 2 1 -2 -6 0
-1 5 0 9 4 -3 -6 -691 -2
-709 800 382 -396 -140 -841 923 368 328
737 624 169 -610 458 -188 -423 126 410
Варианты заданий
Таблица 26. Варианты заданий лабораторной работы №7
№ вар.
| Программа
| Процедуры (Функции)
| M< =
| N< =
| Файл с данными
|
| В прямоугольном массиве с помощью функции найти элемент, у которого самая большая сумма " соседей". Найденный элемент и его индексы напечатать. Исходные числа из файла читать, начиная с 27 числа.
| 1) Распечатать исходный массив с помощью процедуры.
2) Построить функцию, которая для произвольного внутреннего элемента передаваемого ей массива находит сумму всех соседних (8 штук).
|
|
| DATF.TXT
|
| В прямоугольном массиве с помощью процедуры убрать все строки, у которых оба конца – с четными значениями. Исходные данные из файла читать, начиная с 44 числа.
| 1) Печатать двумерный массив до и после корректировки с помощью процедуры.
2) Построить процедуру, которая удаляет (со сдвигом вверх всех нижележащих строк) заказанную строку передаваемого ей прямоугольного массива
|
|
| DATI.TXT
|
| В прямоугольном массиве, найдя с помощью процедуры место минимального элемента, удалить строку и столбец, проходящие через него. Исходные числа из файла читать, начиная с 99 числа.
| 1) Печатать массив до и после корректировки с помощью процедуры.
2) Построить процедуру, которая находит в передаваемом массиве номер строки и номер столбца самого маленького элемента.
|
|
| DATI.BIN
|
| Квадратный массив заполнить данными из файла, начиная с 21 числа. С помощью функции в исходном массиве поменять элементы главной диагонали с максимальными значениями в строке.
| 1) Исходный и полученный массивы печатать процедурой.
2) Построить функцию, которая возвращает номер максимального элемента заказанной строки прямоугольного массива.
|
|
| DATF.TXT
|
| Одномерный символьный массив длиной 300 элементов заполнить символами из файла, начиная с начала. С помощью процедуры заполнить новый одномерный символьный массив символами из исходного массива без повторения символов.
| 1) Построить процедуру, которая в исходном массиве заменяет пробелом все вхождения первого встретившегося символа (не пробела) и возвращает этот стертый символ в вызывающую программу.
2) Печатать каждый массив с помощью процедуры.
|
|
| SIMBOL.
TXT
|
| В квадратном массиве, используя процедуру сортировки, сделать все строки упорядоченными по возрастанию. Исходные числа из файла читать, начиная с 20 числа.
| 1) Печатать массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в заказанной строке передаваемого ей квадратного массива упорядочивает элементы по возрастанию методом выбора.
|
|
| DATF.TXT
|
| Прочитать в одномерный строковый массив (строки по 80 символов, количество строк не более 50), текст составленной Паскаль-программы. Используя функцию, подсчитать количество операторов в тексте программы. Перед каждым " end" должен стоять символ '; '.
| 1) Составить процедуру подсчета и печати количества групп операторов (заключенных в скобки " begin..end") в исходном массиве строк.
2) Составить функцию, возвра-щающую количество символов '; ' в строке.
|
|
| *.PAS
|
| В прямоугольном массиве с помощью процедуры сделать все строки упорядоченными по убыванию. Исходные числа из файла читать, начиная с " К" -го числа, где К вводить с клавиатуры
| 1) Печатать массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в заказанной строке передаваемого ей прямоугольного массива упорядочивает элементы по возрастанию методом обмена.
|
|
| DATI.BIN
|
| Заполнить одномерный массив из М элементов. Затем с помощью процедуры заполнить одномерный целочисленный массив длиной 10 элементов, в котором i-й элемент указывает, сколько чисел исходного массива лежит в диапазоне от (i–1)*10 до i*10. Исходные числа из файла читать, начиная с 6 числа.
| 1) Исходный и полученный массивы печатать процедурой.
2) Построить процедуру, которая подсчитывает, сколько чисел в передаваемом ей одномерном целочисленном массиве попадает в заказанный диапазон.
| 100.. 200
|
| DATI.BIN
|
| Одномерный массив строк длиной по 80 символов заполнить из файла. Используя функцию, найти, какая русская буква (не различая прописные и строчные) встречается чаще. К функции обращаться, передавая ей строчную и прописную буквы и символьную строку массива.
| 1) Распечатать исходный массив процедурой.
2) Составить функцию, возвра-щающую суммарное количество вхождений двух заданных символов в заданной строке длиной 80 символов.
|
|
| RUS.TXT
|
| Прямоугольный символьный массив размером 10x30 заполнить из файла начиная с 29 символа. С помощью процедуры заполнить два одномерных массива длиной 10 элементов каждый. В первом массиве – наиболее частые символы, а во втором – их количество в каждой строке исходного массива. Получен-ные массивы также распечатать.
| 1) Исходный массив печатать процедурой.
2) Построить процедуру, которая в заказанной строке произвольного символьного массива (размерами до 10х30) находит, какой символ встречается чаще всего и сколько раз.
|
|
| SIMBOL.
TXT
|
| Заполнить исходную квадратную матрицу А числами из файла, начиная с 39-го числа. Используя процедуры, вычислить матрицу С=А*В, где В – транспонированная матрица А.
| 1) Печатать все массивы с помощью процедуры.
2) Построить процедуру транспонирования квадратной матрицы (размерами до 7х7).
3) Построить процедуру, перемножения двух квадратных матриц размерами до 7х7 (см. пояснения к 5 лабораторной).
|
|
| DATF.TXT
|
| Прочитать в одномерный строковый массив (строки по 80 символов), количество строк не более 50, текст составленной Паскаль-программы.
Используя функцию, подсчитать количество управляющих операторов в этой программе. Распечатать название и количество операторов каждого вида. Перед подсчетом перевести все латинские символы в прописные.
| 1) Составить процедуру печати двух массивов в форме: название оператора – количество вхождений. В процедуру передать строчный массив названий и числовой – количеств.
2) Составить функцию, возвра-щающую количество вхождений заданной строки в массиве из 50 строк по 80 символов. (Функцию использовать для строк: 'if', 'goto', 'for', 'case', 'while', 'repeat'.)
|
|
| *.PAS
|
| Используя процедуру заполнить одномерный целочисленный массив длиной 15 элементов, в котором каждый элемент указывает, сколько в исходном одномерном символьном массиве символов " а", " б" и т.д. до " п". Исходный массив заполнять из файла, пропустив 10 символов
| 1) Исходный массив печатать процедурой.
2) Построить процедуру, которая подсчитывает, сколько раз в передаваемом ей одномерном символьном массиве длиной N элементов встречается заказан-ный символ.
|
|
| SIMBOL.
TXT
|
| В прямоугольном массиве с помощью функции найти элемент, у которого самая маленькая сумма соседних вместе с ним. Полученный элемент напечатать. Исходные числа из файла читать, начиная с 29 числа.
| 1) Печатать исходный массив с помощью процедуры.
2) Построить функцию, которая для произвольного внутреннего элемента передаваемого ей массива (размерами до 11x7), находит сумму элемента и всех соседних с ним (всего 9 штук).
|
|
| DATF.BIN
|
| Прямоугольный символьный массив размером 20x30 заполнить символами из файла, пропустив 49 символов. С помощью процедуры в массиве найти и заменить на '*' элемент с самой маленькой суммой кодов соседних символов.
| 1) Построить процедуру, которая для заказанного внутреннего элемента массива подсчитывает сумму кодов восьми соседних элементов.
2) Печатать каждый массив с помощью процедуры.
|
|
| SIMBOL.
TXT
|
| Прямоугольный массив заполнить из файла каждым третьим числом. Используя логическую функцию распечатать для каждой строки исходного массива фразу " четных чисел больше" или " четных чисел не больше".
| 1) Распечатать исходный массив процедурой.
2) Составить функцию, возвра-щающую значение TRUE, если в заданной строке массива больше четных чисел и FALSE в противном случае.
|
|
| DATI.BIN
|
| В прямоугольном массиве с помощью процедуры сделать все строки упорядоченными по возрастанию. Исходные числа из файла читать, начиная с " К" -го числа, где К< 10 вводить с клавиатуры.
| 1) Печатать массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в заказанной строке передаваемого ей прямоугольного массива упорядочивает элементы по убыванию методом выбора.
|
|
| DATF.TXT
|
| Массив из M строк и пяти столбцов частично (первые три столбца) заполнить числами из файла, начиная с 33-го числа файла. Рассматривая первые три числа в каждой строке матрицы в качестве коэффициентов при нулевой, первой и второй степени Х, заполнить четвертый и пятый элементы значениями корней уравнения с помощью процедуры.
| 1) Построить процедуру, вычис-ляющую вещественные корни квадратного уравнения по трем передаваемым ей коэффициентам (если отсутствует один или оба вещественных корня, процедура должна возвращать значения корней, равные нулю).
2) Заполненный массив распе-чатать процедурой.
|
| -
| DATF.BIN
|
| С помощью процедуры в исходном массиве сделать все строки упорядоченными по возрастанию. Перед обращением к процедуре копировать строку в одномерный массив, после – копировать обратно. Исходный массив заполнить числами из файла, начиная с 18-го.
| 1) Печатать массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в одномерном целочисленном массиве упорядочивает элементы по возрастанию методом выбора.
|
|
| DATI.BIN
|
| Прямоугольный массив заполнить числами из файла, начиная с четвертого числа. С помощью функции в исходном массиве сделать элементы первой строки равными максимальному элементу соответствующего столбца.
| 1) Исходный и полученный массивы печатать процедурой.
2) Построить функцию, которая возвращает максимальное значение в заказанном столбце прямоугольного массива.
|
|
| DATI.TXT
|
| В квадратном массиве, используя процедуру сортировки, сделать все столбцы упорядоченными по возрастанию (перед обращением к процедуре копировать столбец в одномерный массив, после – копировать обратно). Исходные числа из файла читать, начиная с 18-го.
| 1) Печатать двумерный массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в одномерном вещественном массиве упорядочивает элементы по убыванию методом выбора.
|
|
| DATF.BIN
|
| Одномерный символьный массив длиной 300 элементов заполнить из файла, начиная с начала, и распечатать по 60 символов в строке. С помощью процедур сосчитать и распечатать, сколько трех-, шести- и девяти- символьных слов в массиве.
| 1) Построить процедуру, которая в передаваемом ей исходном массиве заменяет все разделители (символы: ' ', '.', ', ', '-', '(', ')', '" ') на единый – точку.
2) Построить процедуру, которая в передаваемом ей массиве определяет количество слов заданной длины (слово – символы между двумя точками.)
|
|
| SIMBOL.
TXT
|
| В прямоугольном массиве, используя процедуру, сделать все столбцы упорядоченными по возрастанию. Исходные числа из файла читать, начиная с 12-го.
| 1) Печатать массив до и после сортировки с помощью процедуры.
2) Построить процедуру, которая в заказанном столбце произвольного прямоугольного массива упорядочивает элементы по возрастанию методом обмена.
|
|
| DATI.BIN
|
| Одномерный символьный массив длиной 300 элементов заполнить из файла и распечатать по 60 символов в строке. С помощью функции заполнить два массива из 26 элементов, соответственно буквой и числом ее повторений (перед этим все символы массива сделать прописными). Упорядочить массив букв по убыванию повторений методом пересчета. Распечатать оба массива.
| 1) Распечатать исходный массив процедурой.
2) Составить функцию, возвра-щающую количество вхождений заданного символа в строке.
|
|
| LAT.TXT
|
| Используя процедуры, по исходным квадратным массивам (матрицам) А и В вычислить матрицу С=А*В+А. Исходные числа из файла читать, начиная с 18-го.
| 1) Печатать все массивы с помощью процедуры.
2) Построить две процедуры, которые для двух квадратных матриц (размерами до 7х7) вычисляют третью матрицу той же размерности: первая – сумму, вторая – произведение.
|
|
| DATF.TXT
|
| Одномерный символьный массив заполнить из числового файла, рассматривая его как символьный (пропуская концы строк). Используя функцию, заполнить два массива: цифр и числа их повторений. Пересортировать массив цифр по возрастанию числа повторений методом выбора. Распечатать оба массива до и после сортировки.
| 1) Распечатать исходный массив процедурой.
2) Составить процедуру печати массивов цифр и их повторений.
3) Составить функцию, возвращающую количество вхождений заданного символа в символьном массиве.
|
|
| DATF.TXT
|
| В прямоугольном вещественном массиве размером 9x7 заполнить первые пять столбцов числами, прочитанными из файла (читать начиная с 28 числа). С помощью этой процедуры в исходном массиве заполнить последний столбец
| 1) Построить процедуру, которая в заказанной строке прямоугольного массива 9х7 элементов находит самую большую по модулю разность двух элементов (не обязательно соседних) среди первых шести элементов и заносит найденное значение в седьмой элемент строки массива.
2) Заполненный массив распечатать процедурой
|
|
| DATF.BIN
|
| Прочитать в одномерный массив строк (длиной по 74 символа) первые 73 символа каждой строки файла DATF.TXT. Используя функцию, заполнить выходной одномерный строчный массив (элементы – строки длиной восемь символов) отдельными " словами" – изображениями чисел.
| 1) Составить строковую функцию, выбирающую из строки первое " слово" – первую подстроку между пробелами, заменяя при выборе в исходной строке выбранные символы пробелами.
2) Печать выходного массива по пять " слов" в строке выполнить с помощью процедуры.
|
|
| DATF.TXT
|
| Одномерный массив длиной M элементов из файла, начиная с 106 числа. Используя процедуру, заполнить целый одномерный массив длиной десять элементов, в котором каждый элемент будет равен суммарному количеству цифр каждого значения (от нуля до девяти) во всех числах прочитанного массива. Распечатать этот массив.
| 1) Исходный массив печатать процедурой.
2) Построить процедуру, которая подсчитывает, сколько цифр каждого значения (от нуля до девяти) встречается в передаваемом ей целом числе. Использовать операцию вычисления остатка от целочисленного деления на десять (целые числа содержат меньше шести цифр).
| 100..
|
| DATI.TXT
|
| Прямоугольный массив заполнить числами из файла, начиная с 33-го. С помощью функции в исходном массиве сделать элементы последнего столбца, равными сумме всех элементов соответствующей строки.
| 1) Исходный и полученный массивы печатать процедурой.
2) Построить функцию, которая возвращает сумму четных по значению элементов заказанной строки прямоугольного массива.
|
|
| DATI.BIN
|
|