Модули в Турбо Паскале, создание программного интерфейса на языке "Си"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.02.2011
Размер файла 32,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

КУРСОВАЯ РАБОТА

по информатике

на тему: «Модули в Турбо Паскале, создание программного интерфейса на языке «С»»

Введение

паскаль модуль интерфейс алгоритм

Система программирования Турбо Паскаль представляет собой единство двух в известной степени самостоятельных начал: компилятора с языка программирования Паскаль (язык назван в честь выдающегося французского математика и философа Блеза Паскаля (1623-1662)) и некоторой инструментальной программной оболочки, способствующей повышению эффективности создания программ.

Модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняется определённым правилам.

Использование модулей позволяет упростить тестирование программы и обнаружение ошибок. Аппаратно-зависимые подзадачи могут быть строго отделены от других подзадач, что улучшает мобильность создаваемых программ.

Турбо Паскаль позволяет создавать модули для дальнейшей универсальной обработки задач. Модули состоят из подпрограмм: процедур и функций.

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

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

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

Часть 1. Модули в Турбо Паскале

1.1 Назначение и структура модуля

Модуль - это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части. В модулях Turbo PASCAL явным образом выделяется некоторая "видимая" интерфейсная часть, в которой сконцентрированы описания глобальных типов, констант и переменных, а также приводятся заголовки глобальных процедур и функций. Появление объектов в интерфейсной части делает их доступными для других модулей и основной программы. Тела процедур и функций располагаются в исполняемой части модуля, которая может быть скрыта от пользователя. Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модельного программирования. Важная особенность модуля заключается в том, что компилятор Turbo PASCAL размещает их программный код в отдельном сегменте. Модуль имеет следующую структуру:

UNIT <имя>;

INTERFACE

<интерфейсная часть>

IMPLEMENTATION

<исполняемая часть>

BEGIN

<инициирующая часть>

END

Здесь UNIT - зарезервированное слово, начинает заголовок модуля;

<имя> - имя модуля (должно совпадать с именем файла, в который помещен модуль);

IMPLEMENTATION - зарезервированное слово (выполнение), начинает исполняемую часть; BEGIN - зарезервированное слово, начинает инициирующую часть (часть модуля BEGIN <инициирующая часть> необязательна); END - зарезервированное слово, признак конца модуля.

Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени модуля. Для правильной работы Turbo PASCAL и возможности подключения средств, облегчающих разработку крупных программ, это имя должно совпадать с именем файла, в который помещается исходный текст модуля. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным приложением USES <список модулей>. Здесь USES - зарезервированное слово; <список модулей> - список модулей, с которыми устанавливается связь, элементами списка являются имена модулей, отделяемые друг от друга запятыми. Если объявление USES используется, то оно должно открывать раздел описаний основной программы. Модули могут использовать другие модули. Предложение USES в модулях может следовать либо сразу за зарезервированным словом INTERFACE, либо сразу за словом IMPLEMENTATION. Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и (или) другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок. Объявление подпрограмм в интерфейсной части автоматически сопровождается их компиляцией с использованием дальней модели памяти. Таким образом, обеспечивается доступ к подпрограммам из основной программы и других модулей. Порядок появления различных разделов объявлений и их количество может быть произвольным. Исполняемая часть начинается зарезервированным словом IMPLEMEN- TATION и содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты - вспомогательные типы, константы, переменные и блоки, а также метки, если они используются в инициирующей части. Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части. Но если заголовок программы приводится в полном виде, т.е., со списком формальных параметров, то он должен совпадать с заголовком, объявленным в интерфейсной части. Инициирующая часть завершает модуль. Она может отсутствовать вместе с начинающим ее словом BEGIN или быть пустой - тогда за BEGIN сразу следует признак конца модуля (слово END и следующая за ним точка). В инициирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы, могут устанавливаться связи с другими ПК по коммуникационным каналам и т.п. Не рекомендуется делать инициирующую часть пустой, лучше ее опустить: пустая часть содержит пустой оператор, которому будет передано управление при запуске программы.

1.2 Компиляция модулей

В среде Turbo PASCAL имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. В частности, определены три режима компиляции: COMPILE, MAKE и BUILD. Режимы отличаются только способами связи компилируемого модуля и основной программы с другими модулями, объявленными в приложении USES. При компиляции модуля или основной программы в режиме COMPILE компилируется только файл, находящийся в активном окне. По умолчанию предполагается, что используемые модули уже откомпилированы и результаты помещены в одноименные файлы с расширением .TPU; файл с расширением .TPU (от английского Turbo Pаscal Unit) создается в результате компиляции модуля. В режиме МАКЕ компилятор проверяет наличие TPU-файлов для каждого объявленного модуля. Если какой-либо из файлов не обнаружен, то система пытается отыскать одноименный файл с расширением .PAS, т.е. файл с исходным текстом модуля. Если PAS-файл найден, то происходит его компиляция. Кроме того, в этом режиме система следит за возможными изменениями исходного текста любого используемого модуля. Если в PAS-файл (исходный текст модуля) внесены какие-либо изменения, то независимо от того, есть ли уже в каталоге соответствующий TPU-файл или нет, система осуществляет его компиляцию перед компиляцией основной программы. Если изменения внесены в интерфейсную часть модуля, то будут перекомпилированы также и все другие модули, обращающиеся к нему. Режим МАКЕ существенно облегчает процесс разработки крупных программ с множеством модулей. В режиме BUILD существующие TPU-файлы игнорируются, и система пытается отыскать и компилировать соответствующий PAS-файл для каждого объявленного в предложении USES модуля. После компиляции в режиме BUILD программист может быть уверен в том, что учтены все сделанные им изменения в любом из модулей.

Подключение модуля к основной программе и их возможная компиляция осуществляется в порядке их объявления в предложении USES. При переходе к очередному модулю система предварительно отыскивает все модули, на которые он ссылается. Ссылки модулей друг на друга могут образовывать древовидную структуру любой сложности, однако запрещается явное или косвенное обращение модуля к самому себе. Дело в том, что Turbo PASCAL разрешает ссылки на частично откомпилированные модули, что приблизительно соответствует опережающему описанию подпрограммы. Если интерфейсные части любых двух модулей независимы, Turbo PASCAL сможет идентифицировать все глобальные идентификаторы в каждом из модулей, после чего откомпилирует тела модулей обычным способом.

1.3 Программа модуля

unit kursovik;

interface

type matr=array [1..15,1..15] of integer;

mas=array [1..15] of integer;

procedure vvod_matrici (var u:matr; v,w:integer);

procedure pechat_matrici (var u:matr; v,w:integer);

procedure peremnojenie (var d:matr;b,e:matr;m,n,k:integer);

procedure formirovanie (var u:mas;d:matr;m,n:integer);

procedure maximum (var u:mas;var n,x,max:integer);

procedure pechat_massiva (u:mas;n:integer);

procedure yporyadochivanie (var d:matr;x,m:integer);

implementation

procedure vvod_matrici (var u:matr; v,w:integer);

var

i,j:integer;

begin

randomize;

for i:=1 to v do

for j:=1 to w do

u[i,j]:=random (10)-5;

end;

procedure pechat_matrici (var u:matr; v,w:integer);

var i,j:integer;

begin

for i:=1 to v do begin

for j:=1 to w do

write (u[i,j]:5); writeln; end;

end;

procedure peremnojenie;

var i,j,s,r:integer;

begin

for i:=1 to m do

for j:=1 to n do begin

s:=0;

for r:=1 to k do

s:=s+b[i,r]*e[r,j];

d[i,j]:=s;

end;

end;

procedure formirovanie;

var i,j,s:integer;

begin

for j:=1 to n do begin

s:=0;

for i:=1 to m do

if d[i,j]<0 then begin

s:=s+d[i,j];

u[j]:=s; end;

end;

end;

procedure maximum;

var j:integer;

begin

max:=-1000;

for j:=1 to n do

if (u[j]>max)and(u[j]<0) then begin

max:=u[j]; x:=j; end;

end;

procedure pechat_massiva;

var i:integer;

begin

for i:=1 to n do

write (u[i]:5); writeln;

end;

procedure yporyadochivanie;

var y,i,z:integer;

begin

for y:=2 to m do

for i:=m downto y do

if d[i,x]>d[i-1,x] then

begin

z:=d[i,x];

d[i,x]:=d[i-1,x];

d[i-1,x]:=z;

end;

end;end.

1.4 Вызывающая программа

uses crt, kursovik;

var b,e,d:matr; a:mas;

i,j,m,k,n,x,y,z,max:integer;

begin

clrscr;

writeln ('vvedite razmer matrici B');

readln (m,k);

writeln ('vvedite razmer matrici E');

readln (k,n);

vvod_matrici (b,m,k);

vvod_matrici (e,k,n);

pechat_matrici (b,m,k);

writeln;

pechat_matrici (e,k,n);

peremnojenie (d,b,e,m,n,k);

writeln;

pechat_matrici (d,m,n);

formirovanie (a,d,m,n);

maximum (a,n,x,max);

writeln;

writeln ('max=',max, ' j=',x);

pechat_massiva (a,n);

writeln;writeln;

yporyadochivanie (d,x,m);

pechat_matrici (d,m,n);

readln;

end.

Часть 2. Создание программного интерфейса

2.1 Теория к интерфейсу

Каждую вычислительную систему можно оценивать по двум критериям: точность и удобство.

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

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

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

Основные эргономические характеристики :

- конструктивные особенности оборудования;

- качество разработки диалога;

- надежность систем;

- чувствительность систем.

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

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

Для оценки интерфейса существуют несколько критериев [8].Все они охватывают три основных аспекта:

- простота освоения и запоминания операционной системы;

- быстрота достижения целей задачи, решаемой с помощью системы;

- субъективная удовлетворенность при эксплуатации системы.

С точки зрения программного обеспечения в состав интерфейса входят два компонента:

- набор процессов ввода-вывода;

- процесс диалога.

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

Диалог между человеком и компьютером можно определить как обмен информацией между вычислительной системой и пользователем, проводимый с помощью интерактивного терминала и по определенным правилам.

Процесс диалога - это механизм обмена информацией, который можно рассматривать как оболочку, включающую все входящие в систему процессы по выполнению определенных заданий. Структура диалога является основой для классификации интерфейса человек-компьютер [8].

Традиционно выделяют четыре основные структуры типов:

- вопрос-ответ;

- меню;

- экранных форм;

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

Требования к диалогу:

- естественность;

- последовательность;

- краткость;

- поддержка пользователя;

- гибкость.

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

Данные должны располагаться таким образом, чтобы пользователь мог просматривать экран в логической последовательности и мог легко:

- выводить нужную информацию;

- идентифицировать связанные группы информации;

- различать исключительные ситуации (сообщения об ошибках или предупреждения);

- определять какое действие с его стороны требуется (и требуется ли вообще) для продолжения выполнения задачи.

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

Структура диалога типа меню и разработка экранных форм.

Структура диалога типа меню является известным механизмом организации запросов на ввод данных во время диалога, управляемого компьютером.

Меню в виде блока данных на экране - это традиционный формат.

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

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

В диалоге на базе меню имеет смысл либо значение выбранного пункта меню (содержимое объекта выбора), либо номер выбранного пункта меню (первый, второй и т.д.).

В идеале, экранное меню должно содержать 5-6 пунктов; следует избегать списка из 10 и более пунктов.

Структура типа меню является наиболее естественным механизмом для работы с устройствами указания и выбора: меню представляет собой изображение тех объектов, которые выбираются пользователем. Текущий выбранный объект неизменно выделяется.

Структура диалога на основе экранных форм используется на практике в основном там, где учет какой-либо деятельности (транзакции) требует ввода достаточно стандартного набора данных.

Диалог типа экранных форм обычно имеет следующие возможности:

- пользователь заполняет ее слева - направо и сверху - вниз, он может выбирать последовательность ответов, временно пропускать некоторый вопрос, возвращаться назад для коррекции предыдущего ответа;

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

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

2.2 Разработка программы

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

FILE *f;

int b[20][20],e[20][20],d[20][20],d1[20][20];int u[20];int m,s,k,n,j,x,y,z,max,flag;

char l,v,r; int b1,b2;

void vvod_rand(int m,int n,int k,int b[20][20],int e[20][20])

{

int i,j;

randomize();

for(i = 1; i <= m; i++)

for(j = 1; j <= k; j++)

b[i][j] = rand() % 10-7;

for(i = 1; i <= k; i++)

for(j = 1; j <= n; j++)

e[i][j] = rand() % 10-7;

}

void vvod_ekran(int m,int n,int k,int b[20][20],int e[20][20])

{

int i,j;

printf("Vvedite m, n, k : \n");

scanf("%d %d %d", m, n, k);

printf("Vvedite matricu m x k :\n");

for(i = 1; i <= m; i++)

for(j = 1; j <= k; j++)

scanf("%d", &b[i][j]);

printf("Vvedite matricu k x n :\n");

for(i = 1; i <= k; i++)

for(j = 1; j <= n; j++)

scanf("%d", &e[i][j]);

getch();

}

void vvod_file(int n,int k,int b[20][20],int e[20][20])

{

char s[10];

int c,i,j;

printf("kakoi file otkroem dlya sozdaniya matricy b:");scanf("%s",&s);

f=fopen(s,"r");

i=1;

while(!feof(f))

{

for (j=1;j<=k;j++)

{

fscanf(f,"%d",&c);

b[i][j]=c;

}

i=i+1;

}

fclose(f);

printf("kakoi file otkroem dlya sozdaniya matricy e:");scanf("%s",&s);

f=fopen(s,"r");

i=1;

while(!feof(f))

{

for (j=1;j<=n;j++)

{

fscanf(f,"%d",&c);

e[i][j]=c;

}

i=i+1;

}

fclose(f);

}

void form_d(int m,int n,int k,int b[20][20],int e[20][20])

{

int i,j,l;

for(i = 1; i <= m; i++)

for(j = 1; j <= n; j++)

{

d[i][j]=0;

for(l = 1; l <= k; l++)

d[i][j]=b[i][l]*e[l][j];

}}

void form_u(int m,int n,int d[20][20],int u[20])

{

int i,j,s;

for(j = 1; j <= n; j++)

{

s=0;

for(i = 1; i <= m; i++)

{if (d[i][j]<0)

s+=d[i][j];

u[j]=s;

}

}

}

void max_j(int u[20],int n,int max)

{

int j;

max=-1000;x=0;

for (j = 1; j <= n; j++)

if ((u[j]>max)&&(u[j]<0))

{max=u[j];

x=j;}

}

void vivod_ekran_mas(int m,int u[20])

{

int i;

for (i=1;i<=m;i++)

printf("%3d",u[i]);

}

void yporyadochivanie(int m,int x,int d1[20][20])

{int y,i,z;

for (y=2;y<=m;y++)

for (i=m;i>=y;i--)

if (d1[i][x]>d1[i-1][x])

{

z=d1[i][x];

d1[i][x]=d1[i-1][x];

d1[i-1][x]=z;

}

}

void vivod_ekran_matr(int m,int n,int d[20][20])

{

int i,j;

printf("\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=n;j++)

printf("%3d",d[i][j]);

printf("\n");

}

}

void vivod (int m,int n,int k,int b[20][20],int e[20][20],int d[20][20],int d1[20][20],int u[20])

{

int i,j;

f=fopen("result.dat","w");

fprintf(f,"programmu razrabotala:\n");

fprintf(f,"Gorina Anna, gr.S-710,fac.MRM\n");

fprintf(f,"SibSUTI, 2008\n\n");

fprintf(f,"Zadanie na kursovuyu rabotu:\n");

fprintf(f,"Sozdat matrici B,E razmerom po viboru polzovatelya:\n");

fprintf(f,"sluchainim obrazom, schitat iz faila, vvesti s klaviatury\n");

fprintf(f,"Poluchit massiv D putem ymnogeniya matrici B[m,k] na matricy E[k,n]\n");

fprintf(f,"Opredelit v rezultirujuchej matrice stolbec c naibolshej symmoj otricatelnih elementov\n");

fprintf(f,"Yporadochit etot stolbec po ubivaniju\n");

fprintf(f,"Vivesti rezultaty po viboru na ekran,printer,v file\n");

fprintf(f,"Sozdat module s procedurami realizacii vseh ukazannih voprosov\n");

fprintf(f,"Razrabotat programmniy interface\n\n");

fprintf(f,"Rezultaty raboty\n\n");

fprintf(f,"Ishodnie matrici\n\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=k;j++)

fprintf(f,"%3d",b[i][j]);

fprintf(f,"\n");

}

for (i=1;i<=k;i++)

{

for (j=1;j<=n;j++)

fprintf(f,"%3d",e[i][j]);

fprintf(f,"\n");

}

fprintf(f,"\nMtrica d[m][n] putem ymnojenija b[m][k] na e[k][n]\n\n");

for (i=1;i<=m;i++)

for (j=1;j<=n;j++)

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

fprintf(f,"\nMassiv u - naibolshaja summa otricatelnih elementov v matr D\n");

fprintf(f,"\n");

for (i=1;i<=m;i++)

fprintf(f,"%3d\n",u[i]);

fprintf(f,"\nUporadichevanie po ubivaniju\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=n;j++)

fprintf(f,"%3d",d1[i][j]);

fprintf(f,"\n");

}

fclose(f);

}

void vivod_ekran (int m,int n,int k,int b[20][20],int e[20][20],int d[20][20],int d1[20][20],int u[20])

{

int i,j;

printf("programmu razrabotala:\n");

printf("Gorina Anna, gr.S-710,fac.MRM\n");

printf("SibSUTI, 2008\n\n");

printf("Zadanie na kursovuyu rabotu:\n");

printf("- Sozdat matrici B,E razmerom po viboru polzovatelya:\n");

printf("sluchainim obrazom, schitat iz faila, vvesti s klaviatury\n");

printf("- Poluchit massiv D putem ymnogeniya matrici B[m,k] na matricy E[k,n]\n");

printf("- Opredelit v rezultirujuchej matrice stolbec c naibolshej symmoj otricatelnih elementov\n");

printf("- Yporadochit etot stolbec po ubivaniju\n");

printf("- Vivesti rezultaty po viboru na ekran,printer,v file\n");

printf("- Sozdat module s procedurami realizacii vseh ukazannih voprosov\n");

printf("- Razrabotat programmniy interface\n\n");

printf("Rezultaty raboty\n\n");

printf("Ishodnie matrici\n\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=k;j++)

printf("%3d",b[i][j]);

printf("\n");

}

for (i=1;i<=k;i++)

{

for (j=1;j<=n;j++)

printf("%3d",e[i][j]);

printf("\n");

}

printf("\nMatrica d[m][n] putem ymnojenija b[m][k] na e[k][n]\n\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=n;j++)

printf("%3d",d[i][j]);

printf("\n");

}

printf("\nMassiv u - naibolshaja summa otricatelnih elementov v matr D\n");

for (i=1;i<=m;i++)

printf("%3d",u[i]);

printf("\n");

printf("\nUporadichevanie po ubivaniju\n");

for (i=1;i<=m;i++)

{

for (j=1;j<=n;j++)

printf("%3d",d1[i][j]);

printf("\n");

}

}

void main()

{

l='0';

while (l!='5')

{

clrscr();

gotoxy(18,6);

printf("Menu");

gotoxy(5,12);

printf("1.Vvod razmerov matricbI");

gotoxy(5,9);

printf("0. Zadanie i informaciya o razrabot4ike");

gotoxy(5,15);

printf("2.Vvod matricbI");

gotoxy(5,18);

printf("3.Obrabotka matricbI");

gotoxy(5,21);

printf("4.VbIvod matricbI");

gotoxy(5,24);

printf("5.VbIxod");

gotoxy(7,27);

printf(" vbIberite punkt punkt - ");

l=getch();

switch(l)

{

case '0':

{

clrscr();

printf("RAZRABOTCHIK: \n");

printf("\n");

printf("Gorina Anna, gr.S-710, Fakultet MRM ");

printf("\n");

printf("SibSUTI, 2008");

printf("\n");

printf(" Zadanie na kyrsovyy raboty:");

printf("\n");

printf("- Sozdat matrici B,E razmerom po viboru polzovatelya:\n");

printf("- sluchainim obrazom, schitat iz faila, vvesti s klaviatury\n");

printf("- Poluchit massiv D putem ymnogeniya matrici B[m,k] na matricy E[k,n]\n");

printf("- Opredelit v rezultirujuchej matrice stolbec c naibolshej symmoj otricatelnih elementov\n");

printf("- Yporadochit etot stolbec po ubivaniju\n");

printf("- VbIvesti rezultatbI po vbIbory na ekran, printer libo v fail");

printf("\n");

printf(" - Sozdatb modul s procedyrami realizacii vsex ykazannbIx voprosov");

printf("\n");

printf(" - Razrabotat programmnbIi interfeis");

printf("\n");

printf("Press Enter please");

getch();

break;

}

case '1':

{

clrscr();

gotoxy(5,5);

printf("vvedite kol strok matricy b: \n");

scanf("%d",&m);

printf("vvedite kol stolbcov matricy b: \n");

scanf("%d",&k);

printf("vvedite kol strok matricy e: \n");

scanf("%d",&k);

printf("vvedite kol stolbcov matricy e: \n");

scanf("%d",&n);

flag=1;

gotoxy (10,15);

printf(" Enter -dalshe\n");

getch();

break;

}

case '2':

{

clrscr();

if (flag!=1)

{

clrscr();

gotoxy(5,5);

printf ("vvedire razmeri matryc\n");

gotoxy (10,8);

printf (" Enter - Dalee\n");

getch();

}

if (flag==1)

{

clrscr();

gotoxy(5,5);

printf("Vvod matricy");

gotoxy(7,8);

printf("1. Random matr");

gotoxy(7,11);

printf("2. S klaviaturi");

gotoxy(7,14);

printf("3. Zapolnenie matricy iz faila");

gotoxy(7,17);

printf(" vash vibor punkta menu - ");

r=getch();

switch (r)

{

case '1':

{

vvod_rand(m,n,k,b,e); flag=2;

printf("\n");

printf("\n");

vivod_ekran_matr(m,k,b);

printf("\n");

vivod_ekran_matr(k,n,e);

printf("\n");

printf(" Enter - Dalee\n");

getch();

break;

}

case '2':

{

clrscr();

vvod_ekran (m,n,k,b,e); flag=2;

printf("\n");

printf("\n");

vivod_ekran_matr(m,k,b);

printf("\n");

vivod_ekran_matr(k,n,e);

printf("\n");

printf(" Enter - Dalee\n");

getch();

break;

}

case '3':

{

clrscr();

vvod_file (n,k,b,e); flag=2;

printf("\n");

printf("\n");

vivod_ekran_matr(m,k,b);

printf("\n");

vivod_ekran_matr(k,n,e);

printf("\n");

printf(" Enter - Dalee\n");

getch();

break;

}

}

}

break;

}

case '3':

{

if (flag!=2)

{

clrscr();

gotoxy(5,5);

printf("Zadaite matricu");

gotoxy(5,11);

printf(" Enter - Dalee");

getch();

}

else

{

clrscr();

printf("ishodnaya matrica\n\n");

vivod_ekran_matr(m,k,b);

vivod_ekran_matr(k,n,e);

printf(" Enter - Dalee\n");

getch();

form_d(m,n,k,b,e);

printf("\n");

printf("Sphormirovannaja matrica \n");

vivod_ekran_matr(m,n,d);

printf("\n");

form_u(m,n,d,u);

vivod_ekran_mas(m,u);

printf("\n");

max_j(u,n,max);

printf("Stolbec j - naibolshaja summa otricatelnih elementov v matrice: %d", x);

printf("\nUporadichevanie - uporadichevanie po ubivaniju\n");

for (b1=1;b1<=m;b1++)

for (b2=1;b2<=n;b2++)

{d1[b1][b2]=d[b1][b2];}

yporyadochivanie(m,x,d1);

vivod_ekran_matr(m,n,d1);

flag=3;

printf(" Enter - Dalee\n");

getch();

}

break;

}

case '4':

{

clrscr();

if (flag!=3)

{

clrscr();

gotoxy(5,5);

printf("punkt predydushii nado vipolnit");

gotoxy(10,8);

printf(" Enter - Dalee");

getch();

}

else

{

clrscr();

gotoxy(5,5);

printf("Vivod rezultatov");

gotoxy(7,8);

printf("1. Na ekran");

gotoxy(7,11);

printf("2. V fail");

gotoxy(7,14);

printf("3. Na printer");

gotoxy(10,17);

printf(" viberite punkt menu - ");

v=getch();

f=fopen("result.dat","w");

if (v=='2')

{

printf("\n Rezultaty zapisany\n");

printf(" v fail - rezult.dat\n");

vivod (m,n,k,b,e,d,d1,u);

getch();

}

if (v=='1')

{

clrscr();

vivod_ekran(m,n,k,b,e,d,d1,u);

printf("Press Enter please");

getch();

}

}

break;

}

case '5':

{

clrscr();

gotoxy(5,5);

printf("EXIT\n");

printf("Press Enter please");

break;

}

}}

getch();

}

2.2 Результаты программы

Исходнаые матрицы

-5 -3 1

2 2 -2

-1 1

-6 -7

-4 -1

Матрица d[m][n] путем умножения b[m][k] на e[k][n]

-4 -1

8 2

Массив u - наибольшая сумма отрицательных элементов в матрице d

-4 -1

Упорядочивание по убыванию

-4 2

8 -1

Заключение

На основе проделанной работы можно сделать следующие выводы:

1) Турбо Паскаль, Си - отличные языки для изучения основ программирования. Они включает в себя структуры, которые впоследствии пригодятся при программировании на других языках высокого уровня.

2) Модульность - наиважнейшая функция в среде Турбо Паскаль. Принцип модульного программирования, который основан на применении процедур и функций, позволяет решить комплекс однотипных задач при применении заранее описанных процедур и функций.

Список используемой литературы

1. Грогоно П. Программирование на языке Паскаль. - М.: Мир,1982.-382с.

2. Тетрадь лекций по курсу информатика за 2 семестр.

Размещено на Allbest.ru


Подобные документы

  • Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.

    курсовая работа [215,3 K], добавлен 01.09.2010

  • Создание программного модуля, выполненного на языке программирования VBA (Visual Basic for Applications) и позволяющего во введенном массиве символов удалить все повторные вхождения этих символов. Разработка пользовательского интерфейса. Код программы.

    курсовая работа [317,4 K], добавлен 11.10.2012

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.

    курсовая работа [449,8 K], добавлен 14.01.2011

  • Разработка структурной диаграммы программного модуля. Представление схемы для основных расчетов выбранного приложения для создания прямоугольной матрицы. Особенности создания пользовательского интерфейса. Тестирование и отладка спроектированного модуля.

    курсовая работа [648,4 K], добавлен 27.05.2015

  • Разработка СУБД - программного модуля для систематизации, хранения и обработки сведений о работниках лаборатории. Технологический процесс машинной реализации задачи, составление алгоритма, описание переменных процедур и функций. Листинг программы.

    курсовая работа [1,7 M], добавлен 11.01.2013

  • Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.

    курсовая работа [1,8 M], добавлен 17.05.2016

  • Анализ проектирования интерфейса программы. Выбор и назначение визуальных компонентов. Изучение экранных форм приложения. Модули, процедуры, функции проекта и их назначение. Листинг программного кода. Результаты работы автоматизированного продукта.

    курсовая работа [1,9 M], добавлен 11.12.2017

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.

    дипломная работа [1,7 M], добавлен 14.03.2013

  • Разработка графического интерфейса проекта (панель инструментов имеет 6 кнопок). Процедуры разделов программы: документа ThisDocument, программного модуля Module1 и пользовательских форм UserForm1, UserForm2 и Деление_амёбы. Тестирование программы.

    курсовая работа [29,5 K], добавлен 14.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.