|
Олимпиада программистов, Чистый С |
|
|
|
Feb 25 2013, 09:05
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Не знаю, разрешено ли здесь такие сообщения давать. Но надеюсь, что модератор не обидится. Знакомая компания проводит олимпиаду по программированию. Решили поискать программистов в русскоговорящем мире. Меня попросили рассказать, где могу. А я только на этом форуме и бываю. Причем только в разделе для начинающих. http://hola.org/challenge_ru.htmlНадо написать две простые функции на чистом С.
|
|
|
|
|
 |
Ответов
(75 - 89)
|
Mar 28 2013, 06:16
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(demiurg_spb @ Mar 28 2013, 10:05)  Отправлял и с ... и с ... Я позвонил человеку, который просил меня сделать перевод. Он сегодня не работает (в Израиле сейчас неделя праздников), поэтому сгодня проверить как так получилось не может. Вернется на работу во вторник. Сопроводительное письмо было? На английском?
Сообщение отредактировал igorle - Mar 28 2013, 06:16
|
|
|
|
|
Mar 28 2013, 06:40
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Скажите, а как можно переписать покрасивше вот это: Код if ( b ) size_src = strlen( b ); else return; В Libc вместо char используют Wchar. Приблизительно я понимаю о чем речь, но вот конкретно для данной задачи оно нужно? Спасбио! Цитата(demiurg_spb @ Mar 28 2013, 08:19)  А чего её обдумывать? Посмотрите реализацию memmove. В ней всё уже обдумано: если нет перекрытия то вызывается memcpy. Оптимальнее вряд ли напишете. Я тоже отправил свой вариант в день размещения этой темы, но никакого ответа пока так и не получил. Завтра могу показать. Вот такая реализация мне доступна. Если я не ошибаюсь, здесь несколько упрощена проверка перекрытия. Код /* * Copyright (C) 2002 Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */
#include "_string.h"
#ifdef WANT_WIDE # define Wmemmove wmemmove #else # define Wmemmove memmove #endif
Wvoid *Wmemmove(Wvoid *s1, const Wvoid *s2, size_t n) { register Wchar *s = (Wchar *) s1; register const Wchar *p = (const Wchar *) s2;
if (p >= s) { while (n) { *s++ = *p++; --n; } } else { while (n) { --n; s[n] = p[n]; } }
return s1; }
#ifndef WANT_WIDE libc_hidden_def(memmove) #endif
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Mar 28 2013, 06:45
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(demiurg_spb @ Mar 28 2013, 09:40)  Код char* p; size_t n = (p)? strlen(p) : 0; Нет, в случае если указатель нулевой то выход из функции осуществить! Зачем ноль присваивать если это уже не имеет смысла в нашем контексте например!? А зачем Вы используетет size_t, чем например int не подходит? (я понимаю, что это связано с важными моментами, но не ясно с какими)
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Mar 28 2013, 06:53
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(demiurg_spb @ Mar 28 2013, 09:23)  Нет. Только код. А надо? Нет, не надо. Просто подумал, что если пришло письмо на русском, это могло их сбить с толку. Я их буду трясти во вторник.
|
|
|
|
|
Mar 28 2013, 07:00
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Буратино @ Mar 28 2013, 10:45)  А зачем Вы используетет size_t, чем например int не подходит? Самодокументирование кода. Тем что int знаковый. sizeof() возвращает size_t. + Посмотрите как написана libc. Например посмотрите прототип memcpy. Видите какой тип у третьего аргумента? Или что возвращает strlen. Ну и т.д. и т.п. Вообщем если измеряется кол-во или размер самое место для size_t.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Mar 28 2013, 12:54
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Цитата(Буратино @ Mar 28 2013, 01:40)  Скажите, а как можно переписать покрасивше вот это: Код if ( b ) size_src = strlen( b ); else return; Код if ( !b ) return; size_src = strlen( b );
|
|
|
|
|
Apr 2 2013, 16:08
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(demiurg_spb @ Mar 28 2013, 09:05)  Отправлял и с demiurg_spb @ _ _ _.ru и с ___ @ kipspb.ru Посмотрели. Говорят, что с @kipspb.ru был один участник. Давно. Ответили ему в тот же день. От demiurg_spb получили письмо только 28 марта. Были праздники, но скоро ответят (может быть уже ответили) Очень удивлялись, что люди обсуждают на форуме и выкладывают решения конкурсных задач. Считают что это нелогичным. тем более, что конкурс продолжается.
|
|
|
|
|
Apr 2 2013, 19:33
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(Буратино @ Apr 2 2013, 20:55)  Как так продолжается? А когда заканчивается? Они этот процесс уже год как ведут. Можете посмотреть список "победителей". Там есть даты. Я не знаю, зачем он конечную дату публикуют, а потом корректируют. Хозяин - барин. Ну и, как помните, конкурс индивидуальный, а не коллективный. Так что лучше свои решения не публиковать.
Сообщение отредактировал igorle - Apr 2 2013, 19:35
|
|
|
|
|
Apr 3 2013, 05:16
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(igorle @ Apr 2 2013, 20:08)  Посмотрели. Говорят, что с @kipspb.ru был один участник. Давно. Ответили ему в тот же день. Ничего не получил. Цитата От demiurg_spb получили письмо только 28 марта. Были праздники, но скоро ответят (может быть уже ответили) Вчера прислали оповещение, что получили моё решение и извинились за задержку. Но пока никаких результатов и комментариев... Цитата(igorle @ Apr 2 2013, 23:33)  Так что лучше свои решения не публиковать. ок.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|
|