Навигация по сайту
Календарь
«    Февраль 2007    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 

Популярные статьи





Архив новостей
Октябрь 2008 (7)
Сентябрь 2008 (17)
Август 2008 (3)
Январь 2008 (2)
Декабрь 2007 (1)
Июль 2007 (1)
Март 2007 (20)
Февраль 2007 (6)

Это интересно
рекламные туры в бостон
На web-портале организации информация по- и квартирный переезд и, грузчик - переезд
My Computer portal » Программирование » Калькулятор на C++ под Linux.




Калькулятор на C++ под Linux. Программирование
Сейчас я опишу путь написания простейшего калькулятора в Linux на С++. Для начала нам потребуется редактор исходного текста и мы воспользуемся kwrite. Почему им? Потому что vi для начала достаточно сложен, а других оптимальных я не вижу. Запускаем kwrite. Ввод/вывод будем реализовывать с помощью потоков. С ними, на мой взгляд проще работать. Для того что бы использовать потоки в нашей программе, мы должны подключить заголовочный файл, в котором будут описаны все операции с потоками, которые мы будем использовать. Подключаются заголовочные файлы путем добавления в самое начало программы строчки: #include . Обычно подключаемые файлы имеют расширение *.h. Для работы нам потребуется подключить файл iostream.h. Именно он нам позволит работать с потоками. Добавляем. Какая же программа без главной функции. Каждая программа должна иметь главную функцию, которая имеет имя main. Соответственно добавляем в нашу программу следующий блок текста:
#incude <iostream.h>

int main(){

}

Это и есть наше главное тело программы. Операторы данной функции записываются между двумя квадратными скобками { }. Функциям можно передавать значения в виде параметров. Параметрами являются переменные. Чтобы передать в функцию значение переменной, эта переменная описывается в круглых скобках, которые расположены рядом с именем функции. Внимание, если мы не передаем функции параметры, мы все равно должны писать скобки, т. к. они являются элементами синтаксиса языка С++. main является функцией и поскольку мы указали тип возвращаемого значения (т. е. переменную такого типа должна вернуть функция) int, нам следует вернуть значение типа int. Это делается для того что бы не возникало ошибки. Возвращается значение в программу, оператором return(имя_возвращаемой_переменной). Также, если компилятор встречает оператор return(), он прерывает работу этой функции и все что написано после retur выполнено не будет. Соотоветсвенно, у нас получается код:
#include <iostream.h>        

          int main(){

return(0);
}    

0 – это не имя переменной, а значение. Почему именно 0, потому что при успешном выполнении, программы обычно возвращают код ошибки равный 0. В будущем, мы научимся обрабатывать ошибки и в зависимости от того, какая ошибка возникает, возвращать различные коды ошибок. Итак, что же должна читать наша программа. Очевидно два числа и знак арифметической операции (например «+»). Чтение из потока производится оператором:
cin>>имя_переменной;
Для начала наша программа должна читать одно значение, число, затем знак арифметической операции, и после этого второе число. Это можно записать следующим образом:
cin>>a;
cin>>s;
cin>>b;

а можно и так: cin>>a>>s>>b; Второй способ короче и мы будем использовать его. Т.к. мы должны сперва прочитать все значения, прежде чем с ними работать, у нас получается код:


#include <iostream.h>

int main(){
cin>>a>>s>>b;

return(0);
}

Все, что мы прочитали с помощью cin, мы записываем в переменные: a, b, s. Но мы не можем их использовать не объявив их. Следовательно, объявляем:
#include <iostream.h>

int    a,b;
char  s;

int main(){
  cin>>a>>s>>b;

  return(0);
}

Переменные бывают разных типов. double – число с плавающей точкой, int – целые числа, char – символы. Существует много различных типов данных. В рамках этой статьи все их рассматривать не будем.
В данном случае, мы объявили глобальные переменные. Локальные объявляются внутри функции. В зависимости от того, где объявлена переменная, она имеет область видимости. В зависимости от области видимости переменной, мы можем использовать переменную во всех функциях или только в конкретной (там где она объявлена). Мы можем объявлять переменные в любом месте программы, но только до использования.
Далее, в зависимости от того, какой символ у нас s (может быть: «+», «-», «/», «*») мы должны рассмотреть различные ситуации. Для различных ситуаций, очень полезно применять оператор switch.
#include <iostream.h>

int    a,b;
char  s;

int main(){
  cin>>a>>s>>b;
    switch (s){
    case '+':
      cout<<"Результат: "<<a+b<<'n';
      break;
    case '-':
      cout<<"Результат: "<<a-b<<'n';
      break;
    case '*':
      cout<<"Результат: "<<a*b<<'n';
      break;
    case '/':
      cout<<"Результат: "<<a/b<<'n';
      break;
    default :
      cout<<"Вы ввели некорекный знак арифметической операции.ns";
      break;
  return(0);
}
}

Переменную, которую мы рассматриваем, указываем в скобках, например: switch (s){}. Между квадратными скобками мы указываем возможные варианты значения s и для каждого пишем отдельно обработку. Также полезно иногда ставить обработку ситуации, когда s не является ни одним из предполагаемых Вами значением. Для этого у нас идет default :. Заметьте, после того, как мы сделали нужную нам обработку, мы пишем break;. Это означает что после выполнения на нужно прерваться и выйти за пределы текущих {}. Если же мы не пропишем оператор break, после выполнения одной обработки, пойдет обработка всех ситуаций, стоящих после текущей.
Итак, у нас получилась вот такая программа:
#include <iostream.h>

double a,b;
char s;

int main(){
  cin>>a>>s>>b;
  switch (s){
    case '+':
      cout<<"Результат: "<<a+b<<'n';
      break;
    case '-':
      cout<<"Результат: "<<a-b<<'n';
      break;
    case '*':
      cout<<"Результат: "<<a*b<<'n';
      break;
    case '/':
      cout<<"Результат: "<<a/b<<'n';
      break;
    default :
      cout<<"Вы ввели некорекный знак арифметической операции.ns";
      break;
  }
  return(0);
}

Для вывода строки в поток, используется оператор: cout<<имя_переменной_или_строка; Что бы после вывода строки, курсор переходил на новую, мы добавили в поток символ: «n». Заметьте, что в С++ есть различие между строчными и прописными буквами.
После того, как Вы написали программу, сохраните ее в ваш домашний каталог под именем: first.cpp. Обычно это: /home/имя_пользователя. Далее, открываем консоль. Выполняем следующие команды:
cd ~
мы перешли в Ваш домашний каталог.
g++ first.cpp
ждем, после компиляции, в вашем домашнем каталоге появляется программа: a.out. мы должны ее запустить. Выполняем:
./a.out
Вводим произвольное выражение. Например: 2+2 и нажимаем . Смотрим результат. Этот код должен работать и в Windows, но к сожалению, у меня нет сейчас возможности описать создание программы под Windows, да и мало ли статей на эту тему в Интернет?


Наша студия предлагает изготовление папок по приемлемым ценам.
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
#1 написал: Tranzistor (29 апреля 2007 01:10)
Замечательная статья! Спасибо, помогли начинаюему программисту разобраться =) Pda powerful Site. Сайт о мобильных устройствах.

Хорошо придумали...но у меня посложнее кальк.
#2 написал: X_MUTNIY (11 июня 2008 10:06)
Большое спасибо.
Очень интнресная, и полезная инфа.
#3 написал: misdos (19 сентября 2008 04:41)
Добавление комментария
Включите эту картинку для отображения кода безопасности



Рекламный блок
Вход на сайт
Логин
Пароль
 
Реклама
On-line
Пользователей On-Line: 3, из них вошедших: 0, гостей: 3 и поисковых роботов: 0
 
Список пользователей:
Отсутсвуют
Список роботов:
Отсутсвуют
 
 

Опрос на сайте

Да, он мне понравился
Да, сойдет
Нет, он не очень
Нет, он мне не понравился


Информация




Rambler's Top100


На сайт срочно требуются талантливые обозреватели, программисты, дизайнеры, ньюсмэйкеры, и просто люди, разбирающиеся в компьютерах и способные рассказать о своем опыте.
Главная страница | Реклама на транспорте | Регистрация | Добавить новость | Новое на сайте | Статистика Copyright © 2006. My Computer info portal All Rights Reserved