База знаний студента. Реферат, курсовая, контрольная, диплом на заказ

курсовые,контрольные,дипломы,рефераты

Алгоритмические языки программирования — Программирование, Базы данных

Лабораторная работа № 3 Реализация альтернативных действий на языке Си

Фамилия

Крамаренко А.А.


Группа

АУЗ-261


Преподаватель

Козлова Г.В.


Срок выполн.

01.04.09


Срок сдачи

05.06.09

 

Формулировка задания

Определите, правильно ли расставлены скобки (' и' )' в -заданной формуле, запи-санной в виде символьной строки. Скобки расставлены правильно, если закры-вающая скобка расположена после соответствующей открывающей и их количе-ство совпадает.

Внешняя спецификация

Входные данные:

Строка любых символов, содержащая в себе '(' и ')' (формула).

Выходные данные:

1. Сообщение о проверке расстановки скобок (правильно) (неправильно).

2. Сообщение о ошибке.

Справочная информация:

1. Вывод данных о программе.

2. Вывод данных о задании.

Диалоги:

1. Введите формулу содержащую скобки.

2. Результат

3. Скобки расставлены правильно!!!

4. Ошибка, проверьте расстановку!!!

Главная Функция:

Подсчет количества закрывающих и открывающих скобок. Сравнение количества ско-бок. Проверка правильности расстановки. Вывод результата.

Набор тестовых примеров (входные/выходные данные):

Тест №1: Ввод формулы содержащей скобки расставленные верно

Вход: (x+y)(z÷i) = x(-2)

Выход: Скобки расставлены правильно!!!

Тест №2:Ввод формулы не содержащей скобки

Вход: x=y*2+4

Выход: Нет скобок!!!

Тест №3: Ввод формулы содержащей скобки расставленные не верно

Вход: (x+y)(z÷i) = x)-2)

Выход: Ошибка, проверьте расстановку!!!

Тест №4:Ввод строки содержащей равное количество скобок но расставле-ных не верно

Вход: ())(

Выход: Ошибка, проверьте расстановку!!!

Тест №5: Ввод пустой строки (выполнить программу без входных данных )

Вход:

Выход: Нет скобок!!!

Структура данных:

Имя

Тип

Описание

m, y

Символьный

Введ?нные значения

Zak, otk

Целое [-32767 до 32767]

Количество скобок

i

Целое [-32767 до 32767]

Адрес сим-вола в мас-сиве

Экранные формы работающей программы:

Алгоритм в виде блок-схемы:

Листинг:

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "Unitaaa1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Memo1->Clear(); // очистка поля вывода

AnsiString y;//введенные символы

y = Edit1->Text; //ввод данных с Edit1

char* m = y.c_str(); // Преревод AnsiString в char

int zak=0, otk=0; // переменных для подсчета скобок

for (int i=0;m[i]!='';i++) //пока m[i] не конец массива

{

if (m[i]==')') zak++; //если m[i]== закрывающей то zak+1

if (m[i]=='(') otk++; //если m[i]== открывающей то otk+1

if (zak > otk) // если закрывающих больше выводим ошибку

{

Memo1->Lines->Add("Ошибка, проверьте расстановку!!!"); //

break; // Прерывание цикла

}

}

if (otk==0&&zak==0) // Если (да) нет ни одной скобки

{

Memo1->Lines->Add("Нет скобок!!!"); //вывод ошибки

}

else //если (нет)

{

if (zak == otk) //Вывод сообщения о правильности програмы

Memo1->Lines->Add ("Скобки расставлены правильно!!!");

if (zak < otk) // проверка на количество и вывод ошибки

Memo1->Lines->Add("Ошибка, проверьте расстановку");

}

Button3->SetFocus();//перемещения фокуса на кнопку очистки форм

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Close(); //кнопка закрыть

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Edit1->Clear(); //кнопка очистить

Memo1->Clear();

Edit1->SetFocus(); // перемещение фокуса на поле ввода

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Edit1->Clear();

Memo1->Clear();

Label1->Caption="Введите формулу содержащую скобки";

Label2->Caption="Результат";

// При запуске формы очищает поля

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)

{

Edit1->Clear();

Memo1->Clear(); // Очистить

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

Edit1->Clear(); //Очистить(верхнее меню)

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

Form1->Close(); // закрыть (верхнее меню)

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N5Click(TObject *Sender)

{

ShowMessage("Семестровая работаnАлгоритмические языкиnпрограммирования nАУЗ 261nКрамаренко АлександраnШифр: 607104");

// Справка -> О программе

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N6Click(TObject *Sender)

{

ShowMessage("Определите, правильно ли расставлены скобки n'(' и' )' в -заданной формуле, nзаписанной в виде символьной строки. nСкобки расставлены правильно, nесли закрывающая скобка расположена после соответствующей nоткрывающей и их количество совпадает.");

//Задание (меню файл)

}

//----------/////-----------------------------------------------------------------

Лабораторная работа № 3 Реализация альтернативных действий на языке Си Фамилия Крамаренко А.А. Группа АУЗ-261 Преподаватель Козлова Г.В. Срок выполн. 01.04.09 Срок сдачи 05.06.09 Формулировка задания Определите, правильно ли расст

 

 

 

Внимание! Представленная Лабораторная находится в открытом доступе в сети Интернет, и уже неоднократно сдавалась, возможно, даже в твоем учебном заведении.
Советуем не рисковать. Узнай, сколько стоит абсолютно уникальная Лабораторная по твоей теме:

Новости образования и науки

Заказать уникальную работу

Свои сданные студенческие работы

присылайте нам на e-mail

Client@Stud-Baza.ru