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

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

ПРАКТИЧЕСКАЯ ЧАСТЬ. Пример 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; просмотров: 609. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Этапы и алгоритм решения педагогической задачи Технология решения педагогической задачи, так же как и любая другая педагогическая технология должна соответствовать критериям концептуальности, системности, эффективности и воспроизводимости...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

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