Практическая часть.
Разработать приложение, выполняющее следующие функции. Ввести с клавиатуры значения элементов символьного двумерного массива. Удалить из него все символы «А» и отсортировать по возрастанию (методом пузырька). Результат вывести на экран и записать в файл.
Листинг программы:
/*
Разработать приложение, выполняющее следующие функции.
Ввести с клавиатуры значения элементов символьного двумерного массива.
Удалить из него все символы "А" и отсортировать по возрастанию (методом пузырька).
Результат вывести на экран и записать в файл.
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<windows.h>
#define MAX 50
char bufRus[256]; // для вывода русских букв
char* rus(char *text)
{
CharToOem(text, bufRus);
return bufRus;
}
/*Информация программы*/
void Start()
{
printf(rus("Разработать приложение, выполняющее следующие функции.\n"));
printf(rus("Ввести с клавиатуры значения элементов символьного двумерного массива.\n"));
printf(rus("Удалить из него все символы А и отсортировать по возрастанию (методом пузырька).\n"));
printf(rus("Результат вывести на экран и записать в файл.\n"));
printf(rus("\n студент группы 001502, Халлыев Руслан\n\n"));
}
int main (void)
{
char mas[MAX][MAX],ch, temp[MAX*MAX];
int i,j,n,m,t,k;
Start(); // информация программы
// ввод размера массива
printf(rus("Введие размер массива n="));
scanf("%d",&n);
printf(rus("Введие размер массива m="));
scanf("%d",&m);
// ввод массива
for (i=0; i<n; i++) {
for (j=0; j<m; j++) {
printf(rus("Введие элементы массива mas[%d,%d]= "),i,j);
getchar(); // cъедаем символ переноса каретки
mas[i][j]=getchar(); // считываем символ с клавиатуры
// scanf("%c",&mas[i][j]);
}
}
printf(rus("Исхдный массив\n"));
// вывод масива на экран
for ( i=0; i<n; i++) {
for ( j=0; j<m; j++) {
printf("%c\t", mas[i][j]);
}
printf("\n");
}
t=0;
for ( i=0; i<n; i++) {
for ( j=0; j<m; j++) {
if(mas[i][j]!='A' && mas[i][j]!='a' ){
temp[t]=mas[i][j];
t++;
}
}
}
printf(rus("\nМассив после удаления\n"));
// вывод масива на экран после удаления
int tt=0;
for ( i=0; i<n; i++) {
for ( j=0; j<m; j++) {
if (tt<t){
mas[i][j]=temp[tt];
printf("%c\t", mas[i][j]);
tt++;
}
}
printf("\n");
}
// сортировка методом пузырька
for (t=0;t<tt-1;t++)
for (int j=0; j<tt-t-1; j++)
if (temp[j]>temp[j+1]){
ch=temp[j];
temp[j]=temp[j+1];
temp[j+1]=ch;
}
printf(rus("\nМассив после удаления и сортировки\n"));
// вывод масива на экран после сортировки
t=0;
for ( i=0; i<n; i++) {
for ( j=0; j<m; j++) {
if (t<tt){
mas[i][j]=temp[t];
printf("%c\t", mas[i][j]);
t++;
}
}
printf("\n");
}
system("PAUSE");
return 0;
}
Пример работы программы.
Список использованных источников
Герберт Шилд. Программирование на Borland C++. – Мн.: Попурри, 1999, – 791 с.
Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Пер. с англ. – М.; СПб.; К.: Издательский дом «Вильямс»,2000, – 864 с.
С. Бобровский. Самоучитель программирования на языке С++ в системе Borland C++ Builder 4.0. – М.: Десс Inforcom press, 1999, - 468 с.