Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: программа на с++ для определения...  (Прочитано 3116 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GitaristSemenov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • Сайт города Семёнова
программа на с++ для определения...
« : 29 Сентября 2013, 15:50:17 »
Всем привет, товарищи программисты!
Нужно написать программу на с++ для определения, является ли введенная строка ip адресом?

В программировании плохо понимаю, но препод дал такое задание, да еще с блок-схемами...
может кто поможет? среда для разработки - борланд с++ билдер на винде, как это не печально...

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

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5745
  • Все по палатам!
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #1 : 29 Сентября 2013, 15:53:58 »
Покажи текст - где и что не работает или
http://forum.sources.ru/index.php?showforum=149
Извините, я все еще учусь

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3271
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #2 : 29 Сентября 2013, 16:45:14 »
Это можно и на C, с помощью strtok. Если строка состоит из четырёх чисел,
разделённых точками, анализировать числа на предмет допустимости, если
строка другая, то явно не адрес. strtok ничто не мешает использовать и в C++.

« Последнее редактирование: 18 Октября 2013, 21:52:38 от Peter_I »
Пётр.

Оффлайн GitaristSemenov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • Сайт города Семёнова
Re: программа на с++ для определения...
« Ответ #3 : 29 Сентября 2013, 16:56:15 »
Это можно и на C, с помощью strtok. Если строка состоит из четырёх чисел,
разделённых точками, анализировать числа на предмет допустимости, если
строка другая, то явно не адрес. strtok ничто не мешает использовать и в C++.

Пётр.
дело в том, что дали на с++ написать...

Пользователь решил продолжить мысль 29 Сентября 2013, 16:57:01:
Покажи текст - где и что не работает или
http://forum.sources.ru/index.php?showforum=149
начал исправлять программу с паскаля, но выдает уйму ошибок...

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

#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#include <string>
#include <sstream>
#include <stdlib.h>
#pragma hdrstop

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

#pragma argsused
int main(int argc, char* argv[])
{ int ipv, code,i,j ;
char ipi;
ipv=0;
code=0;
cin>>"('Vvedite IP dla proverki')";
cout<<(ipi);
j=strlen(ipi);
if (j>0), (j <= 15) then
{
for i:=1 to j do
{
If not (ip_i in _point) and  not (ip_i in _zero ) then
{
ip_buf:=ip_i+ip_buf;
val(ip_buf,ip_v,code);
}}}
else
If ip_i in _point then
begin
inc(k,1);

}
If (ip_1 = ip_v) or (ip_2 = ip_v) or (ip_3 = ip_v) then
{
Writeln('1');
}
else
Writeln('0');
}
else
cout>>('Vvedite prawelnii znachenia');
Writeln;
goto b;
cout>>;
}

        return 0;
        getch();

//---------------------------------------------------------------------------
Прежде всего главное понять, что тебе нужно, и действовать для достижения цели.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5745
  • Все по палатам!
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #4 : 29 Сентября 2013, 17:13:16 »
Используйте тег code - так не читается
Извините, я все еще учусь

Оффлайн GitaristSemenov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • Сайт города Семёнова
Re: программа на с++ для определения...
« Ответ #5 : 29 Сентября 2013, 17:21:44 »
еще говорят, что есть готовая функция в с++, которая определяет, введенная строчка ip адрес или нет, не подскажете? там вообще вся программа будет из 4 строчек
Прежде всего главное понять, что тебе нужно, и действовать для достижения цели.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5745
  • Все по палатам!
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #6 : 29 Сентября 2013, 17:30:00 »
GitaristSemenov,
А ты преподу скажи, что все уже написано до нас...
Извините, я все еще учусь

Оффлайн GitaristSemenov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • Сайт города Семёнова
Re: программа на с++ для определения...
« Ответ #7 : 29 Сентября 2013, 17:37:15 »
GitaristSemenov,
А ты преподу скажи, что все уже написано до нас...
дело все в том, что препод, который вел с++ от нас ушел, а курс с++ вроде как закончен, так что говорить некому....
Прежде всего главное понять, что тебе нужно, и действовать для достижения цели.

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #8 : 29 Сентября 2013, 17:46:02 »
Всем привет, товарищи программисты!
......
среда для разработки - борланд с++ билдер на винде, как это не печально...

.....

Думаю, вам лучше всего спросить на форуме винды. Как это не печально...
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #9 : 29 Сентября 2013, 18:03:13 »
GitaristSemenov, всё написано, зачем столько либ наподключал и богомерзкий goto используешь?
Курс какой? И что за специальность? Что проходили и что умеете?

Оффлайн GitaristSemenov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
    • Сайт города Семёнова
Re: программа на с++ для определения...
« Ответ #10 : 29 Сентября 2013, 20:06:17 »
решил все сократить до неприличия и сделать примитивным

int a,b,c,d;
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);

{if  ( a >= 0 && a <= 255)
Label1->Caption = "да";
else Label1->Caption = "нет";
if  ( b >= 0 && b <= 255)
Label1->Caption = "да";
else Label1->Caption = "нет";
if  ( c >= 0 && c <= 255)
Label1->Caption = "да";
else Label1->Caption = "нет";
if  ( d >= 0 && d <= 255)
Label1->Caption = "да";
else Label1->Caption = "нет";
}
}

всегда выводит "да"...
Прежде всего главное понять, что тебе нужно, и действовать для достижения цели.

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #11 : 29 Сентября 2013, 20:21:19 »
Вообще бред пишешь и поисковиками не умеешь пользоваться
http://stackoverflow.com/questions/318236/how-do-you-validate-that-a-string-is-a-valid-ip-address-in-c
PS: в последнем куске того самого, у тебя результат определяется чисто от числа d.
« Последнее редактирование: 29 Сентября 2013, 20:22:58 от soarin »

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3271
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #12 : 29 Сентября 2013, 22:50:55 »
Упрощённо говоря, C++ - это C с классами. Можно, конечно, создать класс
типа IP-address, можно создать класс типа string и уже в нём определить
методы для выделения частей строки и вообще её анализа, как в Qt.
Если хотят этого, так и это и надо сделать, но это не реальная задача.
Никто же не запрещает в C++ пользоваться функциями C.
« Последнее редактирование: 18 Октября 2013, 21:52:54 от Peter_I »
Пётр.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #13 : 29 Сентября 2013, 23:56:17 »
Peter_I, чем нереальная? Очень даже реальная. C++ это не СИ с классами, хотя так задумывалось изначально.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5745
  • Все по палатам!
    • Просмотр профиля
Re: программа на с++ для определения...
« Ответ #14 : 30 Сентября 2013, 00:56:28 »
C++ это не СИ с классами, хотя так задумывалось изначально.
Почему же нет. Если человек хочет так писать, то это С с классами.
Возможностей много, на любой выбор.
Извините, я все еще учусь

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.