Вторник, 03.12.2024, 18:16
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Алгоритмы с ветвлением. Глобальные и локальные переменные 

Пример . Разработать проект «Арифметический калькулятор» где а, b,s,p, r, d -действительные числа.

Алгоритм проекта

 

Интерфейс проекта:

   Измените значения указанных свойств формы :

  • Caption =арифметический калькулятор
  • Position = poScreenCenter
  • Color = clMenu
  • Height= 155
  • Width =325
  • Border Style = bsToolWindow  (невозможность изменения размеров формы пользователем)  
  • Кнопки окна формы  - BorderIcons=[biSystemMenu,biMinimize]

Выше  текста  составленной  процедуры  находится  еще  одна  строка  var.

В  этой  строке  указано  имя  одной  переменной  Forml  типа TForm.  Эта  переменная  соответствует  форме,  которая  используется  в  проекте. В этой строке указываются имена и типы тех переменных, которые являются  доступными  в  любой  части  программы.  Такие  переменные  называются  глобальными.  В  отличие  от  глобальных  переменных,  те  переменные,  имена  и  типы  которых  объявлены  в  строке  заголовка  процедуры  и в  строке  var  в  тексте  определенной  процедуры,  доступны  только  командам этой  процедуры.  Такие  переменные  называются  локальными.

 

  1. Объектам,  которые  мы  размещаем  на  форме,  также  соответствуют  переменные,  имена  которых  совпадают  с  именами  соответствующих  объектов,  например  Buttonl,  Editl.
     
  2.  Каждая  из  этих  переменных  тоже  имеет свой  тип,  например  переменная  Buttonl  имеет  тип  TButton,  а  переменная Editl  -  тип  TEdit.
  3.  Имена  и  типы  этих  переменных  среда  разработки  вносит в текст проекта автоматически в раздел type (англ. type -тип)

Помним:

  1. Переменная  может  получить  значение  в  результате  выполнения  команды  присваивания.  Общий  вид  команды  присваивания  в  Object Pascal таков:  <имя переменной>  :=  <выражение>;.
  2.  Выражение  может  состоять  из  значения (константы:  число,  текст  в  одинарных  кавычках  и  др.),  из  имени  переменной  или  содержать  несколько  значений  и  имен  переменных,  соединенных знаками арифметических операций, функции, скобки;
  3. При  вводе  в  текст  проекта  десятичных  дробей  целую  и  дробную  части нужно разделять точкой;
  4. При вводе в ходе исполнения проекта в поле десятичной дроби разделитель  целой  и  дробной  частей  зависит  от  настроек  Windows  (в  русской версии Windows ХР по умолчанию установлена запятая);
  5. Ни в тексте проекта, ни при вводе в поле нельзя использовать обыкновенные дроби;
  6. В Object Pascal нет операции возведения в степень; для возведения в степень используется  специальная  функция,  которую  мы  рассмотрим  позже, а  пока  степень  с  натуральным  показателем  можно  заменять  произведением;
  7. Приоритет  операций  во  всех  случаях  определяется  правилами  математики.

Программный код проекта.

Вариант 1

procedure TForm1.Button1Click(Sender: TObject);
   var a, b,s,p,d,r: real; 
// объявление локальных переменных
begin
  a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);
  s:= a + b;
  label4.Caption:= floattostr(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
   var a, b,s,p,d,r: real; 
// объявление локальных переменных
   begin
      a:=strtofloat(edit1.text);
     b:=strtofloat(edit2.text);
     r:= a - b;
     label4.Caption:= floattostr(r);
end;

procedure TForm1.Button3Click(Sender: TObject);
var a, b,s,p,d,r: real; 
// объявление локальных переменных
begin
   a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);
  p:= a * b;
  label4.Caption:= floattostr(p);
end;

procedure TForm1.Button4Click(Sender: TObject);
var a, b,s,p,d,r: real;
// объявление локальных переменных
begin
  a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);
 
if b <> 0  then
            begin
               d:= a / b;
                label4.Caption:= floattostrF(d,ffFixed,5,2);
                 label5.Caption:= floattostr(d); 
//для наглядности выполним вывод без использования формата
           end
             else  label4.Caption:='деление на ноль недопустимо' ;

end;

var
  Form1: TForm1;
   var a, b,s,p,d,r: real; //переводим локальные переменные в статус глобальных переменных
implementation
{$R *.lfm}
{ TForm1 }  
     

  Вариант 2

procedure TForm1.Button1Click(Sender: TObject);
begin
  a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);
  s:= a + b;
  label4.Caption:= floattostr(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
 begin
      a:=strtofloat(edit1.text);
     b:=strtofloat(edit2.text);
     r:= a - b;
     label4.Caption:= floattostr(r);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);
  p:= a * b;
  label4.Caption:= floattostr(p);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  a:=strtofloat(edit1.text);
  b:=strtofloat(edit2.text);

  if b <> 0  then
      begin
          d:= a / b;
          label4.Caption:= floattostrF(d,ffFixed,5,2);
           label5.Caption:= floattostr(d);

    end
                 else  label4.Caption:='деление на ноль недопустимо' ;

end;                          

Задание.
Поясните ход выполнения фрагментов программ:

a) If <логическое выражение 1 >

б) If < логическое выражение 1 >

Then begin

Then begin

<команды1>

<команды 1 >

end

end;

Else If < логическое выражение 2>

If < логическое выражение 2>

Then begin

Then begin

<команды 2>

<команды 2>

end

end;

Else begin

 

<команды 3>

end;

 

Форма входа
Поиск
Календарь
«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz