Помогни ни да направим Uroci.net по - богат! Добави урок

С++ част.1 (Въведение)

C++ » C++
fix3d   трудност:    видян: 58117




Следващата програма чете по един символ от стандартния вход докато не срещне end-of-file. Тя брои прочетените редове и символи. Изходът й има следния вид:

lineCount characterCount

Описанието й има вида:

#include <stream.h>

main() {
char ch;
int lineCnt=0, charCnt=0;
while ( cin.get(ch) ) {
switch ( ch ) {
case ‘t’:
case ‘ ‘ : break;
case ‘n’: ++lineCnt;
break;
default : ++charCnt; break;
}
}
cout << lineCnt << " " << "n";
return 0;
}

get() е функция, принадлежаща на вх/изх. поток, която чете символи и ги записва като свой аргумент - в този случай, ch. Последователността от два символа n представя символа tab.

Операторът switch осигурява условен преход според стойността на селектора си. Ако стойността му съвпада с някой от описаните след думата case стойности, се изпълнява оператора, съответствуващ на тази стойност. Ако съответствие не може да бъде намерено, се изпълняват операторите, записани след default. За всеки прочетен символ за нов ред се увеличава стойността на lineCnt с 1. charCnt се увеличава с 1 всеки път, когато е прочетен символ, който не е табулатор, интервал или нов ред.

Операторът while, наричан оператор за цикъл, осигурява многократно изпълнение на група от оператори докато някакво условие има стойност истина. В този случай, операторът switch се изпълнява докато get() чете символ от стандартния вход. (Операторите while и switch са описани в глава 6).

Упражнение 0-1. Въведете програмата във файл prog2.c и я компилирайте в изпълним файл, наречен prog2.

Упражнение 0-2. Изпълнете програмата с текста на предишното упражнение. Изпълнете я отново с текст, съдържащ само празни интервали. Изпълнете я за текст, съдържащ само знака end-of-file.

Упражнение 0-3. Преработете програмата така, че да брои табулаторите (tabCnt) и интервалите (blankCnt). Нека изходът да изглежда така.

Total Characters: xx
Lines: x
Chars: x
Tabs: x
Blanks: x

1.4. Няколко думи за коментарите

Коментарите се пишат за да подпомагат четенето на програмите. Те могат да поясняват алгоритъма на функцията, да описват употребата на променливите или да поясняват други аспекти по текста на програмата. Коментарите не увеличават размера на изпълнимата програма. Те се отстраняват от компилатора преди генерацията на кода.

В С++ са дефинирани два типа коментари. Двойката (“/* /”) описва коментарите в езика С. Началото на коментара се определя чрез "/”. Всичко, което следва тези символи ще бъде третирано от компилатора като коментар до срещането на символите “*/”. Коментар може да бъде поставян там, където могат да се поставят табулатори, интервали или символи за нов ред и той може да заема няколко реда от програмата. Например,

/*
This is a first look at a C++ class definition.
Classes are used both in data abstraction and
object-oriented programming. An implementation
of the Screen class is presented in Chapter 5. */ class Screen {/* This is referred to as the class body */ public:

void home(); /* move cursor to 0,0 */
void refresh(); /* redraw Screen */
private:

/* Classes support "information hiding". */
/* Information hiding restricts a program’s */
/* access to the internal representation of */
/* a class (its data). This is done through */
/* use of the "private:" label */

char cursor; / current Screen position */

};

Многото коментари, разположени хаотично в програмния код, могат да направят текста неясен. Например, обградената с коментари дефиниция на cursor почти я скрива. Изобщо, за предпочитане е коментарът да се помества в цялостен блок над текста, който пояснява.


Страници: «1 2 3 4 5 6 »

Сподели урока:



Коментари (11)

black_joker на 27.01 2007 в 20:45ч.
В този код има някъде грешка:

#include

void read() { cout pact() { cout n"; }
void write() { cout n() {
read();
sort();
compact();
write();
return 0;
}

При мен С ми извежда грешка още в първия ред, демек при #include
NeronVylka на 20.03 2008 в 15:54ч.
ами къде ти е библиотеката при #include? #include
NeronVylka на 20.03 2008 в 16:01ч.
И int main () няма и си слагал {} на поразия
Lumos на 16.10 2008 в 08:08ч.
Добре, благодаря, но къде да го напиша това нещо? Аз съм пълен лаик откъм С++ и моля някой да ми каже къде се пише кода. Благодаря предварително.
LiLManiac на 12.11 2008 в 19:32ч.
как да си направя библиотека (.h)
KrAsAvEcYt на 08.03 2009 в 17:03ч.
Имам даден код на самата програма, някой може ли да ми каже как да го компилирам с програмката Dev-C++, т.е. трябват ми стъпките по които се изпълнява този код как се сейфа и как се стартира,
Milen8204 на 24.10 2010 в 14:51ч.
Благодаря на автора за точните указания и изгубеното време за написването на статията :)
noob на 18.02 2011 в 20:58ч.
здравеи аз съм новак ама защо тук ми дава грешка
#include

void read() { cout
neda на 19.02 2011 в 23:41ч.
Трябва да напиша програма за пресмятане заплата. Бход-личен код работник KOD, заплащане за 1 ден L лв. Изход-заплата SUMA. Моля за помощ.
stanmarshsp на 23.09 2011 в 20:40ч.
"В С++ всяко действие се представя чрез израз. Израз, ограничен с “;” представлява оператор. Най-малката независима единица в езика е оператора. В естествените езици аналогичната конструк ция е изречение. Следващите изрази, например, са оператори на С++." ааа.... от това нищо не разбрах не може ли просто да кажеш че с ";" се завършва команда? Ако не е това което си имал в предвид тогава моля някой да ми обясни!
zagorkata на 03.10 2011 в 20:55ч.
Искам да попитам когато направя нещо цъкам компилирай и стартирай завършва и ми отваря програмата, преди това съм я сейфал но я няма как да сейфам.

Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини