Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

15.05.2009, 14:07
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от Fo)(a
Всем привет, уже целый день бьюсь с задачей Проверить соответствие слов begin, end, case end, record в операторах программы Pascal учесть что в строке может быть несколько слов, повторений. Программа на тему динамические структуры данных Заранее спасибо
PS Сори!!! не указал язык в которм выполнить надо" надо сделать на Pascal
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
source: string;
lexem: string;
c : char;
i:Integer;
stack: array[0..100] of string;
stackPointer: integer;
procedure PushLexem(lexem: string);
begin
if lexem = 'end' then
begin
//найден конец блока, выталкиваем из стека
if stackPointer = 0 then
Writeln('Error: Found "end", but not found "begin", "case" or "record"')
else
dec(stackPointer)
end
else
if (lexem='begin') or (lexem='case') or (lexem='record') then
begin
if(stackPointer>=Length(stack)) then
Writeln('Error: Stack overflow');//переполнение стека - слишком много вложенных блоков в исходном тексте
//кладем лексему в стек
stack[stackPointer] := lexem;
inc(stackPointer);
end
end;
begin
//ввод проверяемого кода
Writeln('Enter Pascal source: ');
Readln(source);
//переводим в нижний регистр, добавляем пробел в конце
source := LowerCase(source)+' ';
//перебираем символы, ищем лексемы
lexem := '';
for i:=1 to Length(source) do
begin
c := source[i];
if c in ['a'..'z','0'..'9','_'] then
//читаем лексему
lexem := lexem + c
else
if lexem<>'' then
begin
//прочитана лексема, кладем в стек
PushLexem(lexem);
lexem := '';
end
end;
//проверяем сотсояние стека, он должен быть пуст
if stackPointer > 0 then
Writeln('Error: Found "'+stack[stackPointer-1]+'", but not found "end"');
Writeln('Analysis completed');
Readln;
end.
|
|
|

15.05.2009, 15:34
|
|
Новичок
Регистрация: 07.04.2009
Сообщений: 12
Провел на форуме: 63162
Репутация:
5
|
|
Algol Спасибо большое =)
|
|
|

15.05.2009, 15:52
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
2Algol
поч. тебе репы добавить низя?
|
|
|

15.05.2009, 16:20
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от KIR@PRO
2Algol
поч. тебе репы добавить низя?
Карма такая 
|
|
|

15.05.2009, 16:39
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
Сообщение от Algol
Карма такая 
А зря  "Назвался юзером - получай в репу"
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

15.05.2009, 18:22
|
|
Познающий
Регистрация: 07.05.2009
Сообщений: 64
Провел на форуме: 418218
Репутация:
59
|
|
Привет!
В общем такое задание:
Нужно написать программу, которая имитирует начальный вид банкомата о.О
писать надо на Visual Basic
Собстна что означает "имитирует начальный вид банкомата"??
И как это реализовать?
Спасибо!
|
|
|

16.05.2009, 16:23
|
|
Новичок
Регистрация: 01.01.2008
Сообщений: 5
Провел на форуме: 37475
Репутация:
0
|
|
Нужно написать 4 програмки на c#(1 курс). Оплата договорная, писать icq 7два9756
прилагается ксерокопия методички
Последний раз редактировалось DiMb9IH; 16.05.2009 в 16:27..
|
|
|

16.05.2009, 20:10
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
Провел на форуме: 170237
Репутация:
4
|
|
Лаба на С
Народ помогите кто может пожалуйста!!!!
Нужно написать прогу, которая по матрице смежности графа находит две вершины и путь до них который проходит через все ребра графа.
|
|
|

16.05.2009, 22:43
|
|
Участник форума
Регистрация: 29.07.2007
Сообщений: 124
Провел на форуме: 1266562
Репутация:
60
|
|
собственно мессага
нужно построить график функции x*x*x*x-13*x*x+36 в заданом интервале(вводится с клавиатуры
//PASCAL
Последний раз редактировалось MRAK9; 18.05.2009 в 16:05..
|
|
|

17.05.2009, 17:48
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме: 3226894
Репутация:
379
|
|
Delphi
Что не правильно, не работает программа..помогите исправить ошибки
Код:
unit fazenda_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; // расстояние
Edit2: TEdit; // цена литра бензина
Edit3: TEdit; // потребление бензина на 100 км
CheckBox1: TCheckBox; // True - поездка туда и обратно
Button1: TButton; // кнопка Вычислить
Label4: TLabel; // поле вывода результата расчета
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure EditKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
Edit: TEdit;
begin
Edit := Sender as TEdit;
// в поле Edit можно ввести только дробное число
case Key of
'0'..'9': ; // цифры
#8: ; // клавиша <Backspace>
'.',',': begin
Key := DecimalSeparator;
if Pos(DecimalSeparator,Edit.Text) <> 0
then Key := #0;
end;
#13: // клавиша <Enter>
case Edit.Tag of
1: // клавиша нажата в поле Edit1
Edit2.SetFocus; // фокус в поле Edit2
2: // клавиша нажата в поле Edit1
Edit3.SetFocus; // фокус в поле Edit3
3: // клавиша нажата в поле edit3
Button1.SetFocus; // фокус на кнопку Button1
end;
end;
end;
// щелчок на кнопке Вычислить
procedure TForm1.Button1Click(Sender: TObject);
var
rast : real; // расстояние
cena : real; // цена
potr : real; // потребление на 100 км
summ : real; // сумма
mes: string;
begin
// здесь возможно исключение типа EConvertError
// в случае, если пользователь отставит
// одно из полей ввода незаполненным
try
rast := StrToFloat(Edit1.Text);
cena := StrToFloat(Edit2.Text);
potr := StrToFloat(Edit3.Text);
except
on EConvertError do
begin
ShowMessage('Данные надо ввести во все поля!');
// попытаемся найти пустое поле
if Length(Edit1.Text) = 0
then Edit1.SetFocus
else if Length(Edit2.Text) = 0
then Edit2.SetFocus
else Edit3.SetFocus;
exit;
end;
end;
summ := (rast / 100) * potr * cena;
mes := 'Поездка на дачу';
if CheckBox1.Checked then
begin
summ := summ * 2;
mes := mes + ' и обратно';
end;
mes := mes + 'обойдется в ' + FloatToStrF(summ,ffGeneral,4,2)
+ ' руб.';
Label4.Caption := mes;
end;
end.
Последний раз редактировалось scrat; 17.05.2009 в 18:29..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|