Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003




НазваниеИнформатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003
страница5/12
Дата11.11.2012
Размер0.97 Mb.
ТипМетодические указания
1   2   3   4   5   6   7   8   9   ...   12


Задача 8: Загрузка массива из текстового файла.

Обоснование

Для проверки работоспособности программы требуется вводить данные. В процессе ввода возможны ошибки. Чем больше вводится информации, тем более вероятны ошибки. При обработке двухмерного массива требуется вводить много чисел. Следовательно, высока вероятность ошибок ввода. Поэтому желательно заменить ручной ввод с клавиатуры на автоматический ввод из файла. Файл готовится заранее, и поэтому имеется возможность исправить все ошибки еще на этапе подготовки файла.

Формат файла

Значения элементов массива в файле должны быть размещены в том порядке, в котором они будут считываться. Обычно считывание производится построчно. Именно так числа в файле и запишем. Перед значениями элементов в файл запишем количество используемых строк и столбцов:

Кол-во_строк Кол_во_столбцов

Элементы первой строки

Элементы второй строки



Элементы последней строки

Пример файла

Назовем файл с исходными данными IN.TXT и занесем в него значения элементов массива с учетом того, что в массиве 5 строк и 5 столбцов:

5 5

1 1 1 1 1

2 3 4 5 6

3 3 3 3 3

4 5 6 7 8

5 5 5 5 5


Напишем программу, загружающую числа из файла IN.TXT в массив A.

Фрагмент программы на Паскале:



var

f : text; { Текстовый файл }



{ Открываем файл IN.TXT на чтение }

assign(f, ‘in.txt’);

reset(f);

{ Ввод количества используемых строк и столбцов }

read(f, n, m);

{ Читаем по очереди из файла все элементы массива }

for i := 1 to N do

for j := 1 to M do

read(f, a[i,j]);


{ Закрываем файл }

close(f);



Фрагмент программы на Си:



FILE * f; // Файл


// Открываем файл IN.TXT как текстовый для чтения

f = fopen(“in.txt”, “rt”);


// Ввод количества используемых строк и столбцов

fscanf(f, “%d%d”, &n, &m);

// Читаем по очереди из файла все элементы массива

for (i = 0; i < N; i++)

for (j = 0; j < M; j++)

fscanf(f, "%d", &a[i][j]);


// Закрываем файл

fclose(f);



Задача 9: Сохранение массива в текстовом файле.


Фрагмент программы на Паскале:



var

f : text; { Текстовый файл }



{ Открываем файл OUT.TXT на запись }

assign(f, ‘out.txt’);

rewrite(f);


{ Пишем в файл по очереди все элементы массива }

for i := 1 to N do

begin

for j := 1 to M do

write(f, a[i,j]:4, ‘ ‘);

writeln(f);

end;


{ Закрываем файл }

close(f);



Фрагмент программы на Си:



FILE * f; // Файл


// Открываем файл OUT.TXT как текстовый для записи

f = fopen(“out.txt”, “wt”);


// Пишем в файл по очереди все элементы массива

for (i = 0; i < N; i++)

{

for (j = 0; j < M; j++)

fprintf(f, "%4d ", a[i][j]);

fprintf(f, "\n");

}


// Закрываем файл

fclose(f);



Формат файла OUT.TXT

Первая строка

Вторая строка



Последняя строка

Вычисление суммы и среднего арифметического элементов массива



Задача 10: Подсчитать сумму элементов массива.


Приведем полный текст программы на Паскале – решение этой задачи:

{ Подсчитать сумму элементов массива }

const

N = 5; { Количество строк в массиве }

M = 5; { Количество элементов в каждой строке массива }


Const

{ Обрабатываемый массив }

a : array [1..N, 1..M] of integer = (

(1, 1, 1, 1, 1),

(1, 2, 3, 2, 1),

(1, 3, 4, 3, 1),

(1, 2, 3, 2, 1),

(1, 1, 1, 1, 1)

);

var

i, j : integer; { Индексы: i - счетчик строк, j - счетчик столбцов }

s : longint; { Сумма элементов массива }

begin


{ Подсчет суммы элементов массива }

s := 0; { Инициализация суммы }

for i := 1 to N do

for j := 1 to M do

s := s + a[i,j]; { Накопление суммы всех элементов }


{ Вывод массива в виде таблицы (матрицы) }

writeln; { Вывод пустой строки }

for i := 1 to N do { Все строки }

begin

for j := 1 to M do

write(a[i,j]:4); { Выводятся все элементы каждой строки }

writeln; { Курсор переводится на следующую строку }

end;


{ Вывод суммы элементов массива }

writeln('S = ', s);


end.


Полный текст программы на Си:

/* Подсчитать сумму элементов массива */


#include

#include


// N - количество строк в массиве

#define N 5

// M - количество элементов в каждой строке

#define M 5


int main()

{

// Обрабатываемый массив

int a[N][M] = {

{1, 1, 1, 1, 1},

{1, 2, 3, 2, 1},

{1, 3, 4, 3, 1},

{1, 2, 3, 2, 1},

{1, 1, 1, 1, 1}

};


int i,j; // Счетчики

long s; // Сумма элементов


// Подсчет суммы элементов массива

s = 0; // Инициализация суммы

for (i = 0; i < N; i++)

for (j = 0; j < M; j++)

s += a[i][j]; // Накопление суммы всех элементов


// Вывод массива в виде таблицы (матрицы)

printf("\n"); // Вывод пустой строки

for (i = 0; i < N; i++) // Построчно

{

for (j = 0; j < M; j++)

printf("%4d", a[i][j]); // Выводятся все элементы строки

printf("\n"); // Курсор переводится на следующую строку

}


printf("S = %ld", s);


return 0;

}


Задача 11: Вычислить среднее арифметическое элементов массива.


Фрагмент программы на Паскале:



Var

s : Longint; { Сумма элементов массива }

sa : real; { Среднее арифметическое элементов массива }



Begin




s := 0; { Инициализация суммы }

for i := 1 to n do

for j := 1 to m do

s := s + a[i, j]; { Накопление суммы }

sa := s / (n * m); { Делим сумму на количество элементов –

получается среднее арифметическое}



Фрагмент программы на Си:



long s; // Сумма элементов массива

float sa; // Среднее арифметическое элементов массива



s = 0; // Инициализация суммы

for (i = 0; i < n; i++)

for (j = 0; j < m; j++)

s += a[i][j]; // Накопление суммы

sa = ((float)s) / (n * m); // Делим сумму на количество

// элементов – получается среднее арифметическое




1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconРабочая программа Дисциплины “Узлы и устройства эвм”
Для подготовки дипломированных специалистов по направлению 654600 – «Информатика и вычислительная техника» по специальности 220100...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconМикропроцессорные системы для подготовки
Для подготовки дипломированных специалистов по направлению 654600 – “Информатика и вычислительная техника” по специальности 220100...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconКомпьютерная графика для подготовки
Для подготовки дипломированных специалистов по направлению 654600 “Информатика и вычислительная техника” по специальности 220100...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 icon«Утверждаю»: Министерство образования и науки Российской Федерации Ректор
Направление подготовки: 230100 «Информатика и вычислительная техника Профиль подготовки: «Вычислительные машины, комплексы, системы...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconРабочая программа составлена на основании Государственного стандарта по специальности 220100 «Вычислительные машины, комплексы, системы и сети»
Рабочая программа составлена на основании Государственного стандарта по специальности 220100 «Вычислительные машины, комплексы, системы...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconУчебно-методический комплекс по дисциплине Операционные системы
«Вычислительные машины, комплексы, системы и сети» на кафедре «Вычислительная техника» факультета информационных систем и технологий...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconПрограмма государственного экзамена по специальности 220100 “Вычислительные машины, комплексы, системы и сети”

Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconМетодические указания для студентов направления подготовки 654600 Омск 2002
В методических указаниях по дипломному проектированию предназначены для студентов специальности 22 01 00 «Вычислительные машины,...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconРабочая программа учебной дисциплины «микропроцессорные системы» для специальности: 230101 «Вычислительные машины, комплексы, системы и сети» Заочная форма обучения
«Вычислительные машины, комплексы, системы и сети», изложенных в Государственном образовательном стандарте высшего профессионального...
Информатика и вычислительная техника” и специальностей 220100 “Вычислительные машины, комплексы, системы и сети” и 021800 “Теоретическая и прикладная лингвистика” Ульяновск 2003 iconМетодические указания и контрольные задания Для студентов специальности 230101 «Вычислительные машины, комплексы, системы и сети»
«Вычислительные машины, комплексы, системы и сети» заоч формы обучения / Федер агентство по образованию, Воронеж государственный...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница