Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ПРАКТИЧЕСКАЯ ЧАСТЬ. Пример 1. Написать программу заполнения матрицы размера n × m нечетными целыми числами с выводом результата на консоль и в текстовый файл





Пример 1. Написать программу заполнения матрицы размера n × m нечетными целыми числами с выводом результата на консоль и в текстовый файл. Размеры матрицы и начальное нечетное число задаются пользователем с клавиатуры.

Программный код решения примера

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> int main(void) { int i, j, x, xi, n, m, *matr; FILE *fid; char str[] = "D:\\data.txt"; // месторасположение файла if ((fid = fopen(str, "w")) == NULL) { printf("\n\t The file could not be opened.\n "); printf("\n Press any key: "); getch(); return -1; } printf("\n\t Enter the number of lines: "); scanf_s("%d", &n); printf("\t Enter the number of columns: "); scanf_s("%d", &m); printf("\t Enter the odd number: "); scanf_s("%d", &x); xi = x; matr = (int *)calloc(n*m, sizeof(int)); // Заполнение матрицы целыми числами for (i = 0; i < n; ++i) for (j = 0; j < m; ++j) {matr[i*m + j] = x; x += 2; } printf("\n\t Matrix (%d x %d), initial number: %d\n",n,m,xi); fprintf(fid, "\r\n\t Matrix (%d x %d), initial number: %d\r\n", n, m, xi); for (i = 0; i < n; ++i) { printf("\n "); fprintf(fid, "\r\n "); for (j = 0; j < m; ++j) { printf("%5d", matr[i*m + j]); fprintf(fid, "%5d", matr[i*m + j]); } } fclose(fid); printf("\n\n Result of record look in file %c\n", str); printf("\n Press any key: "); getch(); return 0; }

В программу включена препроцессорная директива #define¼; для устранения предупреждения о ненадежной работе функции fopen() в Visual Studio 2010.


Возможный результат выполнения программы показан на рис. 12.1.

Рис. 12.1. Заполнение матрицы нечетными числами


Текстовый файл с заполненной матрицей представлен на рис. 12.2.

Рис. 12.2. Матрица нечетных чисел в текстовом файле

Примечание. В текстовом файле следует использовать моноширинный (равноширинный) шрифт, например Courier New.

Задание 1

1. Вместо функции calloc() примените функцию malloc().

2. Найдите сумму элементов столбцов матрицы. Результат запишите под матрицей.

3. Произведите заполнение матрицы нечетными числами по столбцам.

4. Запишите сформированную матрицу в файл с расширениями .doc, .xls, .rtf, .csv. Просмотрите полученные файлы.


 

5. Сформируйте матрицу из четных чисел размером (3Х) × (4Х), результат выведите в текстовый файл с именем compX.txt, где Х – номер компьютера, на котором выполняется лабораторная работа.

Пример 2. Написать программу посимвольной записи в текстовый файл некоторой строки, набранной на консоли, и ее посимвольного чтения из текстового файла с перезаписью в другой текстовый файл.

В качестве строки возьмем «hello, world». Для посимвольной записи в файл используем функции putc() и fputc(), которые реализованы для сохранения совместимости со старыми версиями языка С. Для прекращения чтения символов с клавиатуры используем точку '.'.

Программный код решения примера

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> int main(void) { char ch; FILE *f_in, *f_out; char str[] = "D:\\data.txt"; // файл записи char str2[] = "D:\\data2.txt";// файл перезаписи if ((f_in = fopen(str, "w")) == NULL) { printf("\n\t The file could not be opened.\n "); printf("\n Press any key: "); getch(); return -1; } printf("\n Enter the characters by pressing Enter and exit point:\n\n> "); if ((ch = getchar())!= '.') { printf(" "); fputc(ch, f_in);} fclose(f_in); if ((f_in = fopen(str, "r")) == NULL){ printf("\n\t The file could not be opened.\n "); printf("\n Press any key: "); getch(); return -1; } if ((f_out = fopen(str2, "w")) == NULL){ printf("\n\t The file could not be opened.\n "); printf("\n Press any key: "); getch(); return -1;} if((ch = getc(f_in))!= EOF) putc(ch, f_out); fclose(f_in); fclose(f_out); printf("\n\n Result of record look in file %c\n", str); printf(" Result of rewriting look in file %c\n", str2); printf("\n Press any key: "); getch(); return 0; }

В программе сначала открывается файл data.txt для записи в него символов, затем он закрывается. Этот же файл необходим для считывания записанных символов с целью записи их в другой файл под именем data2.txt. Всякий раз производится проверка возможности открытия файлов. Запись символов в текстовый файл выполняется с помощью функций putc() и fputc(), считывание символов из файла – с помощью функции getc().

В среде Visual Studio стандартная функция fopen() языка С вызывает предупреждение при компиляции программы. Для его устранения в программу включена препроцессорная директива







Дата добавления: 2015-09-06; просмотров: 644. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

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

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия