Реферат: Алгоритмические языки программирования
Лабораторная работа № 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; //ввод данных с Edit1char* m = y.c_str(); // Преревод AnsiString в charint zak=0, otk=0; // переменных для подсчета скобокfor (int i=0;m[i]!='';i++) //пока m[i] не конец массива{if (m[i]==')') zak++; //если m[i]== закрывающей то zak+1if (m[i]=='(') otk++; //если m[i]== открывающей то otk+1if (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открывающей и их количество совпадает.»);//Задание (меню файл)}//----------/////-----------------------------------------------------------------
еще рефераты
Еще работы по программированию, базе данных
Реферат по программированию, базе данных
Программирование с использованием структур и динамических массивов C++
29 Августа 2013
Реферат по программированию, базе данных
Решение математических задач в среде Excel
29 Августа 2013
Реферат по программированию, базе данных
Эмпирический алгоритм решения задачи сегментации. Степень сложности алгоритма решения
29 Августа 2013
Реферат по программированию, базе данных
Решение инженерных задач на ЭВМ
29 Августа 2013