У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Курсова робота - Мова С++
22



дії найбільш ефективними і зручними для використовування, застосовуються передбачені в Си++ спеціальні знаки операцій: ++ (збільшити на одиницю) і -- (зменшити на одиницю). Існує дві форми цих операцій: префіксна і постфіксна. Розглянемо їх на прикладах.

int х = 0;

++х;

Значення х збільшується на одиницю і стає рівним 1.

--х;

Значення х зменшується на одиницю і стає рівним 0.

int в = ++х;

Значення х знову збільшується на одиницю. Результат операції ++ - нове значення х, тобто змінною в присвоюється значення 1.

int z = х++;

Тут використовується постфіксний запис операції збільшення на одиницю. Значення змінної х до виконання операції рівне 1. Сама операція та значення х збільшується на одиницю і стає рівним 2. Проте результат постфіксної операції - значення аргументу до збільшення. Таким чином, змінною z присвоюється значення 1. Аналогічно, результатом постфіксної операції зменшення на одиницю є початкове значення операнда, а префіксній - його кінцеве значення.

Подібними мотивами оптимізації і скорочення запису керувалися творці мови Сі (а потім і С++), коли вводили нові знаки операцій типу "виконати операцію і присвоїти". Досить часто одна і та ж змінна використовується в лівій і правій частині операції привласнення, наприклад:

х = х + 5;

у = в * 3;

z = z - (х + в);

В Си++ ці вирази можна записати коротше:

х += 5;

в *= 3;

z -= х + в;

Тобто запис oper= означає, що лівий операнд спочатку використовується як лівий операнд операції oper, а потім як лівий операнд операції присвоєння результату операції oper. Окрім стислості виразу, такий запис полегшує оптимізацію програми компілятором.

Арифметичні вирази

До основних арифметичних операцій відносяться:

Операції | Зміст операції

+, - | Присвоєння знаку

*, /, % | Множення, ділення, залишок від ділення

+, - | Додавання, віднімання

== != < <= > >= | Порівняння (відношення)

Розглянемо операції порівняння.

Операція „==" означає дорівнює != не дорівнює <= менше або рівне >= більше або рівне.

Наприклад: 2*-5+4=-6 та 2*(-5+4)=-2.

Математичні функції

Основні математичні функції наведені нижче:

Назва функції | Математичний опис | Назва функції | Математичний опис

Abs (х) | ¦х¦ | Pow 10(х) | 10х

Cos (х) | Cos х | Log10(х) | lgx

Sin (х) | Sin х | Fabs (х) | ¦х¦

Tan (х) | Tg х | Acos (х) | Arcos х

Log (х) | Ln х | Asin (х) | Arcsin х

Pow (х,у) | xy | Atan (х) | Arctg х

Sqrt (х) | Fmod (х,у) | Обчислює залишок від ділення числа х на в

Exp (х) | ex

Усі інші математичні функції можна виразити через основні.

Послідовність виконання операцій така ж як і в математиці, й визначається правилом пріоритетів. Операції одного рівня виконуються послідовно зліва на право. Для зміни порядку виконання операцій використовують круглі дужки. Кількість відкритих та закритих дужок у виразі повинна бути однаковою.

Введення-виведення файлів

В мові С немає операторів Введення. Ці операції

реалізуються за допомогою численних бібліотечних функцій.

Для реалізації найпростішого інтерфейсу достатньо декількох

функцій, оголошених у файлі stdio.h (#include<stdio.h>).

int getchar(void);

Введення одного символа з клавіатури

при натисненні клавіші <Enter>.

Змінна ch при цьому може бути оголошена як char

int або short. Натиснення <Enter> при введенні символа з клавіатури посилає в буфер введення символ '\n' (ASCII 10), який буде прочитаний при наступному виклику getchar() Без ВСЯКОГО

Нтиснення Клавіш. Тому при введенні одного символа з клавиатури для очищення буфера введення функцію слід викликати двічі:

ch=getchar(); /* читання символа => ch */

getchar(); /* очищення буфера від '\n' */

int putchar(int);

Вивід Одного символа

В якості аргументу може бути ім'я або вираз типу

char або int. У разі int виводиться молодший байт. Повертаюче значення частіше всього ігнорується: (void)putchar(ch+32); або просто putchar(ch+32);

Висновки

Таким чином в курсовому проекті була розглянута програма де треба створити символьний файл "U1", що містить відомості про співробітників підприємства, за таким зразком: порядковий номер запису, прізвище, ім'я, по-батькові, вік, стати, кількість дітей. Перепісати у файл "T" прізвища тихий працівників жіночої статі, які мають двох і більше дітей і працюють на підприємстві не менше 10 років. По бажанню користувача вивести на екран кількість таких працівників. Забезпечити можливість поповнення файлу "U1" з клавіатури, а також вилучення обраних по порядковому номеру записів. Після модифікації файлу "U1" таблиця, яка виводиться на екран і файл "T" повинні оновлюватися автоматично. Забезпечити можливість відновлення попередньої версії модифікованого файлу.

Програма на курсовий проект успішно виконана та збережена на диску який входити до комплекту курсового проекту.

Перелік використаних літературних джерел

1. Бьярн Страустрап «Введення в мові Си++»

2. Д.М. Річи «Учимса програмувати на мові Си++», 39 уроків.

3. У.В. Подбельській «Мова СИ++», Москва, «Фінанси і статистика», 2003

4. С.Р. Девіс «С++ для «Чайников»», Діалектика, Моськва_Санкт-Петербугр_Киев, 2003

5. Д. Елджер - Бібіліотека програміста С++.

Лістинг Unit1.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

int SymbolEntersCount(String s, String ch)

{

int r = 0;

if (s.Trim() != "")

{

for (int i = 0; i < s.Length(); i++)

if (s.SubString(i,1) == ch) r++;

}

return r;

}

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

try

{

Memo1->Lines->LoadFromFile("TEXT");

Memo3->Lines->LoadFromFile("TEXT");

}

catch ( ... )

{

;

}

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

String s;

String s1;

if (ComboBox1->ItemIndex == 0)

{

s1 = ";";

}

else

{

s1 = " ";

}

for (int i=0; i < Memo1->Lines->Count; i++)

{

s += Memo1->Lines->Strings[i] + s1;

if ((Memo1->Lines->Strings[i].Length() > 6) && (Memo1->Lines->Strings[i].Pos("НА")!=0)) Memo2->Lines->Add(Memo1->Lines->Strings[i]);

}

Memo2->Lines->SaveToFile("TEXT2");

Label5->Caption = "Кількість слів у: реченні: " + IntToStr(Memo1->Lines->Count);

s = s.SetLength(s.Length() - 1);

Edit1->Text = s;

String


Сторінки: 1 2 3 4