Лабораторная работа №8
Создание программы обработки двумерного массива.
Цель: Научится создавать программу обработки двумерного массива, на примере задачи подсчета отрицательных чисел и их замены на положительные.
Задача: Создать приложение с формой, которая подсчитывает количество отрицательных чисел и заменяет их на положительные. Организовать функцию выхода из программы.
Порядок выполнения:
- Создать проект с формой.
- Задать имя формы Name=Form1
- Задать надпись в верхней части окна Form1->Caption= “ Обработка двумерного массива”
- На форму вынести элемент главного меню, задать пункт Файл-Выход и действие Form1->Close();
- На форму вынести элемент Memo: Name= Memo1.
- На форму вынести элемент Label: Name= Label1, Caption= “Подсчет отрицательных чисел и их замена на положительные”. Параметры шрифта выбираются на свое усмотрение.
- На форму вынести кнопку Button и задать ей имя Button2, надпись “ Вычислить”
- Подключить модуль <stdio.h>
- На событие OnClick кнопки Button2 записать код:
int Mas[3][4] = {0, 1, 2, 4,
-15, 16, 17, -18,
-119, 110, -111};
int N=0;
Memo1->Lines->Clear();
char r1[80];
sprintf(r1,"Исходный массив:");
Memo1->Lines->Add(r1);
for (int i = 0; i < 3; i++) {
sprintf(r1," %5d\t %5d\t %5d\t %5d",Mas[i][0],Mas[i][1],Mas[i][2],Mas[i][3]);
Memo1->Lines->Add(r1);
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (Mas[i][j]<0) {Mas[i][j]=-Mas[i][j]; N=N++;}
};
};
sprintf(r1,"Обработанный массив:");
Memo1->Lines->Add(r1);
for (int i = 0; i < 3; i++) {
sprintf(r1," %5d\t %5d\t %5d\t %5d",Mas[i][0],Mas[i][1],Mas[i][2],Mas[i][3]);
Memo1->Lines->Add(r1);
};
Memo1->Lines->Add("Количество отрицательных чисел:");
Memo1->Lines->Add(IntToStr(N));
Пояснения к коду программы:
Подключаемый модуль:
#include <stdio.h>//подключаются функции форматированного вывода sprintf
На кнопку Вычислить:
int Mas[3][4] = {0, 1, 2, 4,
-15, 16, 17, -18,
-119, 110, -111}; /*объявляется целочисленный массив Mas с размером 3х4 и задаются значения */
int N=0; //объявляется целочисленная переменная N=0
Memo1->Lines->Clear(); //очистить строки многострочного окна редактирования Memo1
char r1[80]; // объявляется символьный массив r1 с размером 80 элементов
sprintf(r1,"Исходный массив:"); //переменной r1 присваивается строка
Memo1->Lines->Add(r1); /* значение r1 добавляется в многострочное окно редактирования как новая строка */
for (int i = 0; i < 3; i++) /* открыть цикл в котором переменная i=0 целого типа увеличивается каждый раз на 1 пока i < 3 */
{ //начало цикла для i
sprintf(r1," %5d\t %5d\t %5d\t %5d",Mas[i][0],Mas[i][1],Mas[i][2],Mas[i][3]); /* в r1 выводиться с табуляцией элементы строки массива Mas */
Memo1->Lines->Add(r1); /* значение r1 добавляется в многострочное окно редактирования как новая строка */
}; //конец цикла для j
for (int i = 0; i < 3; i++) /* открыть цикл в котором переменная i=0 целого типа увеличивается каждый раз на 1 пока i < 3 */
{ //начало цикла для i
for (int j = 0; j < 4; j++) /* открыть цикл в котором переменная j=0 целого типа увеличивается каждый раз на 1 пока j < 4 */
{ //начало цикла для j
if (Mas[i][j]<0) {Mas[i][j]=-Mas[i][j]; N=N++;} /* если Mas[i][j]<0 то Mas[i][j]=-Mas[i][j]; N=N++
}; //конец цикла для j
}; //конец цикла для i
sprintf(r1,"Обработанный массив:"); //переменной r1 присваивается строка
Memo1->Lines->Add(r1); /* значение r1 добавляется в многострочное окно редактирования как новая строка */
for (int i = 0; i < 3; i++) /* открыть цикл в котором переменная i=0 целого типа увеличивается каждый раз на 1 пока i < 3 */
{ //начало цикла для i
sprintf(r1," %5d\t %5d\t %5d\t %5d",Mas[i][0],Mas[i][1],Mas[i][2],Mas[i][3]); /* в r1 выводиться с табуляцией элементы строки массива Mas */
Memo1->Lines->Add(r1); /* значение r1 добавляется в многострочное окно редактирования как новая строка */
}; //конец цикла для i
Memo1->Lines->Add("Количество отрицательных чисел:"); /* символьная строка добавляется в многострочное окно редактирования как новая строка */
Memo1->Lines->Add(IntToStr(N)); /* символьная строка добавляется в многострочное окно редактирования как новая строка */
Главное меню:
Form1->Close(); //закрыть форму Form1 (закрыть программу)
Анимация выполнения работы:
Pr8.exe (10 MБ) Скачать