Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 14:15   #1
Coca Colla
 
Регистрация: 11.03.2014
Сообщений: 4
Восклицание объясните пожалуйста в коментариях что происходит в каждой строчке(С++Builder)

Код:
#include <stdio.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
void sort(void)
{
ifstream text(".\\file.txt");
if (!text)
{
ShowMessage("Не найден файл file.txt"); return;
}
int Mass[256];
char c;
for (int i = 0; i <= 256; i++) {Mass[i]=0;
}
while ((c=text. get())!=EOF)
{
Mass[(byte) c]++;
}
for (int i = 1; i < 256; i++)
{
if (i>=48&&i<=57 || i>=65&&i<=90 || i>=97&&i<=122 || i>=192&&i<=256 || i==168 || i==184)
if (Mass[i]!=0) {Form1->Memo1->Lines->Add(String().sprintf("символ %c встречается %d раз", i, Mass[i]));
}
}
delete []Mass;
text.close();
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Terminate();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Memo1->Clear();
sort();
}
//---------------------------------------------------------------------------
программа, в которой любой файл открывается как текстовый, и выводится сколько раз повторяется каждый символ, кроме служебных.
Coca Colla вне форума Ответить с цитированием
Старый 13.05.2014, 14:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вот Вы наивный!
Думаете, что раз в другом разделе создали дубликат темы, так все прямо кинутся ваш код расписывать?!!!

Чем Вам можно помочь, если Вы
1) взяли непонятно откуда непонятный для Вас код...
2) Вы явно не собираетесь учить язык программирования! (иначе не было бы просьбы объяснить КАЖДУЮ строчку!!!!)

Вот, хотите, я Вам эту строчку объясню:
Цитата:
Код:
//---------------------------------------------------------------------------
- это комментарий - отбивка просто для красоты...

или эти две строчки:
Код:
Код:
void sort(void)    - это начало процедуры с именем sort, без параметров
{   - это открытие процедурного блока (аналог оператора BEGIN в Паскале... )
Вы такое объяснение хотите получить?!


3) А может Вам стоит во фриланс обратиться? Там таких нежелающих разбираться самостоятельно любят...




p.s. Вот я в C++ ноль. но для интереса вбил в поисковик ifstream text пример
и тут же обнаружилось куча ссылок. вот, например:
ifstream на MSDN
C++. Работа с текстовыми файлами - Kvodo

или гуглить и читать некогда и скучно, проще тут спросить, да?...

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 14:29.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 14:26   #3
Coca Colla
 
Регистрация: 11.03.2014
Сообщений: 4
По умолчанию

if (i>=48&&i<=57 || i>=65&&i<=90 || i>=97&&i<=122 || i>=192&&i<=256 || i==168 || i==184)
эта строка меня интересует, в остальном я понимаю все нормально,я разобрался во всем самостоятельно по методичке,а вот эту строку не понимаю.




_________________
Пожалуйста, пе используйте форум как чат - не пишите несколько коротких сообщений подряд!
Есть что добавить - нажимайте кнопку "Правка/Редактировать" на своём крайнем сообщении
и изменяйте, добавляйте....

Прошу учесть на будущее...

Модератор.

Последний раз редактировалось Coca Colla; 13.05.2014 в 14:33.
Coca Colla вне форума Ответить с цитированием
Старый 13.05.2014, 14:34   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(i>=48&&i<=57 || i>=65&&i<=90 || i>=97&&i<=122 || i>=192&&i<=256 || i==168 || i==184)
Читается так: Если i в пределах (от 48 до 57) или (от 65 до 90) или (от 97 до 122) или (от 192 до 256) или оно равно 168 или 184 то..
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 14:35   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Coca Colla Посмотреть сообщение
if (i>=48&&i<=57 || i>=65&&i<=90 || i>=97&&i<=122 || i>=192&&i<=256 || i==168 || i==184)
эта строка меня интересует, в остальном я понимаю все нормально

я разобрался во всем самостоятельно по методичке а вот эту строку не понимаю.
ну так с этого и нужно было начинать!!!

в этой строке проверяется, попадает ли код символа в диапазон печатных знаков (см. таблицу ASCII)
например,
i>=48&&i<=57 код символа больше-равен 48 и меньше-равен 57
это цифры от '0' до '9'
|| - или
i>=65&&i<=90 большие латинские буквы от 'A' до 'Z'
i>=97&&i<=122 малые латинские буквы от 'a' до 'z'

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 14:39.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 14:36   #6
Coca Colla
 
Регистрация: 11.03.2014
Сообщений: 4
По умолчанию

это я понимаю,а почему именно эти области чисел?
Coca Colla вне форума Ответить с цитированием
Старый 13.05.2014, 14:37   #7
Coca Colla
 
Регистрация: 11.03.2014
Сообщений: 4
По умолчанию

ааа все ясно, спасибо большое))
Coca Colla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как автоматически применить формулу к каждой строчке диапазона lioon Microsoft Office Excel 3 24.10.2013 13:40
Коментарии к каждой строчке ganster Общие вопросы C/C++ 10 09.07.2012 22:42
К каждой строчке добавляется фраза Dominatorsha Общие вопросы Delphi 1 30.05.2011 16:21
Объясните что за ошибки пожалуйста DeFace Общие вопросы C/C++ 12 29.04.2009 14:59