ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.04.2025

Просмотров: 1464

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Федеральное агенство по образованию российской федерации

1. Основные категории и понятия информатики

1.2. Информация: структура, форма, измерение

2. Техническое и программное обеспечение пэвм

2.1. Структура аппаратных средств пэвм

2.2. Программное обеспечение пэвм

3. Основы алгоритмизации

3.2.Формы представления алгоритмов

3.2.1. Алгоритм линейной структуры.

3.2.2. Алгоритм разветвляющейся структуры.

Да нет да да Рис 3.11

3.2.3. Алгоритмы циклической структуры.

4.2. Структура программы на языке Паскаль

4.3. Скалярные стандартные типы данных

4.4. Скалярные, пользовательские типы данных

5. Структурные типы данных

5.3. Записи

5.4. Записи с вариантами

5.6.Файлы

6. Операции над данными скалярных типов. Выражения

7. Операторы языка Паскаль

7.1. Простые операторы

7.2. Структурные операторы

8. Примеры программ на языке Паскаль

8.1. Пример 1. Арифметические выражения. Оператор присваивания

8.3. Пример 3. Программа обработки одномерного массива

8.4. Пример 4. Программа обработки двумерного массива

True False True False False

8.5. Пример 5. Программа обработки символьных строк

8.6. Пример 6. Программа обработки двумерного массива с вводом элементов матрицы из текстового файла

9.Разработка программ сложной структуры

9.1. Процедуры и функции

9.2. Область действия идентификаторов при использовании процедур и функций. Локальные и глобальные переменные

9.3. Передача данных в подпрограмму с помощью параметров. Формальные и фактические параметры

9.4. Использование процедур и функций

True False Рис. 9.4

9.5. Массивы – параметры процедур и функций

True False True False Рис. 9.7

True False True False True False Рис 9.9

9.6. Рекурсивные процедуры и функции

True False Рис. 9.10 True False

True False Рис. 9.12

9.7. Модули

10. Динамические структуры данных

10.2. Объявление и создание динамических структур данных. Указатели

Приложение. Контрольные вопросы

Литература

Рис 8.7

Программа на языке Паскаль.

Program Nomer_Row;

Var

A: array[1..10,1..10] of integer;

K: array[1..10] of integer;

i, j, n, m, kmax, imax: integer;

begin

write('input n<10 ');

readln(n);

write('input m<10 ');

readln(m);

for i:=1 to n do

for j:=1 to n do

read(A[i,j]);

for i:=1 to n do

begin

K[i]:=0;

for j:=1 to m do

if (A[i,j]>0) then

K[i]:= K[i]+1;

end;

kmax:=K[1];

imax:=1;

for i:=1 to n do

if (K[i]>kmax) then

begin

kmax:=K[i];

imax:=i;

end;

if kmax=0 then

writeln('Not A[i][j]>0 !')

else

writeln('imax= ',imax);

write('PRESS ANY KEY!');

readln;

end.

Результаты тестирования.

1. Исходные данные:

n=3

m=3

A=((-1,-2,-3), (-1,0,-3), (-5,-2,-8)

Результат- сообщение «notA[i,j]>0».

Результаты, выданные программой.

input n<10 3

input m<10 3

-1 -2 -3

-1 0 -3

-5 -2 -8

Not A[i][j]>0 !

PRESS ANY KEY!

2. Исходные данные:

n=3

m=3

A=((1,2,3), (1,0,-3), (-5,-2,-8)

Результат- сообщение «imax=1».

Результаты, выданные программой.

input n<10 3

input m<10 3

1 2 3

1 0 -3

-5 -2 -8

imax= 1

PRESS ANY KEY!


8.5. Пример 5. Программа обработки символьных строк

Задание 5. В массиве строк (тексте) определить число слов.

Постановка задачи.

Исходные данные:

  • Число строк в тексте ns<=10;

  • Массив размером ns, содержащий символьные строки максимальной длины, равной 255.

Выходные данные:количество слов в тексте.

Алгоритм.Подсчет числа слов в тексте.

Исходные данные:

СКАЛЯР ns<=10 - целое число;

МАССИВ Mtext[ns] типа string.

Выходные данные:

СКАЛЯР K– целое число.

Промежуточные данные:

СКАЛЯР i– целое число /* параметр цикла */

СКАЛЯР j– целое число /* параметр цикла */

Начало

Вывод(‘inputns<10’)

Ввод(ns)

ЦИКЛОТi:=1ДОns

Вывод(‘line ‘,i)

Ввод(Mtext[i])

КОНЕЦ_ЦИКЛА

K=0;

ЦИКЛ ОТi:=1ДОns

ЦИКЛ ОТ j:=1 ДО length(Mtext[I])

ЕСЛИ (Mtext[i,j]=’ ‘) ТО

K= K+1

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

вывод(‘K= ‘,K)

Конец

Блок-схема алгоритма.

False

True

False

True


False

True

Рис. 8.8

True

False

Program K_Words;

Var

Mtext: array[1..10] of string;

i, j, ns, k: integer;

begin

writeln;

write('input ns<10 ');

readln(ns);

for i:=1 to ns do

begin

write(' Line ',i,': ');


readln(Mtext[i]);

end;

k:=0;

for i:=1 to ns do

begin

for j:=1 to length(Mtext[i]) do

if (Mtext[i,j]=' ') then

k:= k+1;

k:= k+1;

end;

writeln(k,' words in the text ');

write('PRESS ANY KEY!');

readln;

end.

Результаты тестирования.

1. Исходные данные:

ns=3

Mtext= (‘В этой программе определяется’,

‘число слов в тексте.’

‘Слова разделяются пробелами.’)

Результат – сообщение «11 words in the text».

Результаты, выданные программой.

input ns<10 3

Line 1: В этой программе определяется

Line 2: число слов в тексте.

Line 3: Слова разделяются пробелами.

11 words in the text

PRESS ANY KEY!

8.6. Пример 6. Программа обработки двумерного массива с вводом элементов матрицы из текстового файла

Задание 6. В двумерном массиве (матрице) определить номер строки, в которой находится максимальное количество положительных элементов. Если положительных элементов нет в массиве, вывести сообщение об этом.

Исходные данные ввести из текстового файла, сохраняемого на диске.

Постановка задачи.

Исходные данные.

  • Имя текстового файла на диске

  • Текстовый файл на диске с указанным именем, содержащий следующую информацию:

    • число строк в матрице n<=10;

    • число столбцов в матрице m<=10;

    • двумерный массив (матрица) размером nxm, содержащий положительные и отрицательные значения.

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

Аномалии:

  • отсутствие файла с исходными данными на диске;

  • отсутствие положительных элементов в массиве.

Реакция на аномальную ситуацию – выдача сообщения.

Алгоритм.Подсчет числа положительных элементов в строках матрицы.

Исходные данные:

СТРОКА fn– имя входного файла на диске;

ФАЙЛ F1 – входной, текстовый файл (файловая переменная);

СКАЛЯР n<=10 - целое число;

СКАЛЯР m<=10 - целое число;

МАССИВ A[nxm] целого типа.

Выходные данные:

СКАЛЯР imax– целое число.

Промежуточные данные:

МАССИВ K[n] целого типа /* массив счетчиков количества положительных элементов в строках матрицы */

СКАЛЯР kmax– целое число /* максимальное количество положительных элементов */

СКАЛЯР i– целое число /* параметр цикла */

СКАЛЯР j– целое число /* параметр цикла */

Начало

Вывод(‘inputfilename’)

Ввод(fn)

Связывание файловой переменной F1cфайлом, имя которогоfn

Отключение проверки завершения операции ввода-вывода


Открытие файла F1 в режиме чтения

Включение проверки завершения операции ввода-вывода

Если IOResult<>0 то

Вывод(‘File not found!’)

Принудительное завершение программы

КОНЕЦ_ЕСЛИ

Ввод_из_файла(n)

Ввод_из_файла (m)

ЦИКЛОТi:=1ДОn

ЦИКЛОТ j:=1ДОm

Ввод_из_файла (A[i,j])

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

ЦИКЛ ОТi:=1ДОn

K[i]=0;

ЦИКЛ ОТj:=1ДОm

ЕСЛИ (A[i,j]>0) ТО

K[i]= K[i]+1

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

КОНЕЦ_ЦИКЛА

Kmax=K[1]

imax=1

ЦИКЛ ОТi:=1ДОn

ЕСЛИ (K[i]>Kmax)ТО

Kmax=K[i]

imax=i

КОНЕЦ_ЕСЛИ

КОНЕЦ_ЦИКЛА

ЕСЛИ (Kmax=0)ТО

Вывод(‘Not A[i,j]>0!’)

ИНАЧЕ

Вывод(‘imax= ‘,imax)

КОНЕЦ_ЕСЛИ

Закрытие файла

Конец

Блок-схема данного алгоритма, описанного на псевдокоде, представлена на рис. 8.9.

Блок-схема алгоритма.

Отключение проверки завершения операции ввода-вывода

Включение проверки завершения операции ввода-вывода

True

False

Рис. 8.9