Тролль Опубликовано 17 марта, 2010 Жалоба Поделиться Опубликовано 17 марта, 2010 (изменено) Kira Coconatova: var s,a:integer; b1,b2:boolean;beginreadln(a); b1:=false; b2:=false; repeat s:=a mod 10; if s=7 then b1:=true; if s=8 then b2:=true; a:=a div 10 until a=0;writeln(b1 and b2); readlnend. Для блондинок: ;) Находим остаток от деления числа на десять - это даст нам последнюю цифру числа. Проверяем, равна ли она 7 и если да, даем булевской переменной b1 значение true. Затем то же делаем для 8 и переменной b2. b1 и b2 у нас - это признаки наличия в числе цифры 7 и цифры 8 соответственно (сначала b1 и b2 мы задали значения false). Так, с последней цифрой числа разобрались. Затем делим число нацело на 10, теперь предпоследняя цифра стала последней, и повторяем процесс, пока в числе не закончатся все цифры (то есть когда после деления числа на 10 получится 0). Теперь печатаем (b1 and b2) - то есть есть ли у нас в числе 7 И 8. Если да, напечатается TRUE, если нет - FALSE. Изменено 17 марта, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Kira Coconatova Опубликовано 18 марта, 2010 Жалоба Поделиться Опубликовано 18 марта, 2010 ААА))) Спасибочки!!!! Даже я поняла))) :doh: :) Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 18 марта, 2010 Жалоба Поделиться Опубликовано 18 марта, 2010 Возвращаясь к вопросу о системах счисления. Как переводить отрицательные числа? Минус как-то влияет на перевод числа? или просто ставить "-" в начале числа Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 марта, 2010 Жалоба Поделиться Опубликовано 18 марта, 2010 (изменено) Просто ставить минус. Будет обычная знаковая позиционная система счисления. Есть и другие, например, с представлением отрицательных чисел в обратном или дополнительном коде или еще более экзотические (например, с отрицательными или комплексными основаниями), способов записи чисел придумано много - но они нам не нужны. Изменено 18 марта, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 18 марта, 2010 Жалоба Поделиться Опубликовано 18 марта, 2010 Спасибо. Так и зделаю Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 21 марта, 2010 Жалоба Поделиться Опубликовано 21 марта, 2010 у мну ща мозг закипит. есть AnsiString fout=641. Нужно развернуть его в другую сторону: const char *rev=fout.c_str();char *x="";for (int i = fout.Length()-1,j=0; i >= 0; i--,j++)x[j]=rev[i];fout=AnsiString(x); Почему const char? В процесе копирования rev изменяет свои значения О_оо. Далее. Результат первого копирования x[j]=rev; - x[0]=1,x[1]='A' (Omg???). После второго цикла x[0]=1, x[1]=4. И наконец-то после третего - x[0]=1,x[1]=4,x[2]=6 ... и x[3]='B'. Вот. Так вот. Откуда беруться ети значения. Реально запарило уже. Или мож подскажите как лучше развертать строку наоборот. Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 21 марта, 2010 Жалоба Поделиться Опубликовано 21 марта, 2010 Вопрос снят. Вспомнилась функция strrev(). Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 22 марта, 2010 Жалоба Поделиться Опубликовано 22 марта, 2010 Создать список из символами, который наполняется при последовательном вводе какаго-либо текста, посчитать количество повторов каждого символа. с++ Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 марта, 2010 Жалоба Поделиться Опубликовано 23 марта, 2010 (изменено) core_st: Неясно, зачем понадобился список символов, не вижу тут никакого его использования, а строка - стандартный тип в C++, но была тема Связанные списки в С++ , там есть пример реализации списка. А посчитать количество повторов каждого символа проще простого - заводишь массив из 256 целых, индексами в нем числовые значения символов (unsigned char), инициализируешь его первоначально нулями и затем каждый раз при появлении символа увеличиваешь на единицу соответствующий числовому значению этого символа элемент массива. Изменено 23 марта, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Шнурок Опубликовано 25 марта, 2010 Жалоба Поделиться Опубликовано 25 марта, 2010 Добрый вечер Господа. Очень прошу помочь:необходимо на Nvu написать программку,дабы она была способна вычислять длину отрезка по его координатам.Чертовски нужно для лабораторной,да и сроки поджимают.Буду чрезмерно благодарен людям,оказавшим помощь! Найдите в своем дне одну минутку свободного времени,помогите нуждающемуся студенту=) ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 Есть клас Animal. class Animal {protected:char Rozmir;//0,1,2char* Sherst;//колі шерсті цифраbool Hvist;//0,1bool Gruva;//так ніint Rusynok;//цифраbool Kutuci;//так ніpublic:void Write(char,char*,bool,bool,int,bool);Animal();}; Есть несколько обьектов Animal Lev, Kit, Tugr, Pantera, Leo, Rus, Vovk, Bilka; Вот так идет запись атрибутов: Lev.Write(2,"12",true,true,0,false);Kit.Write(0,"2345",true,false,6,false);Tugr.Write(2,"12",true,false,7,false);Pantera.Write(2,"4",true,false,0,false);Leo.Write(2,"12",true,false,8,false);Rus.Write(1,"12",false,false,0,true);Vovk.Write(1,"3",true,false,0,false);Bilka.Write(0,"12",true,false,0,true); (здесь второй параметр - взможные цвета жывотных, например 1 - желтый, 2 - красный. Значит "12" - возможны два цвета) Задание. Сделать функцию идентификации жывотных по указаным параметрам. Например я указываю: X.Compare (2,"12",true,false,7,false); и в результате получаю - Тигр Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 core_st: Для этого в полях класса должно быть не только количество шерсти, но и имя животного. Тогда будет так: Pantera.Write("Pantera",2,"4",true,false,0,false); Тут слово Pantera дублируется, но имена переменных - только для программиста и компилятора, они не хранятся в скомпилированном файле. Вообще-то тут напрашивается массив животных, тогда и с поиском подходящих по признакам животных будет легче. Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 та тут не столько даже дело в названии жывотного. Можно сделать функцию Compare с результатом char, и уже по цыфре идентифиуировать тварь. Вопрос как раз в том как организовать поиск по несвязанным атрибутам. Юзать кучу вложенных switch? как-то не очень хорошо. Так как количество жывтных фиксировано, и параметры их известны, есть ваирант юзать что-то вроде контрольной сумы параметров (при условии одинаковой сумы уже проверять какой-то отличный от других атрибут). Но нужен пример програмной реализации :bye1: Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 Решыл проблему записью параметров в строку. Например: 2,"4",true,false,0,false -> 241000 - сравнивать строку таки проще)) Правда там нужно учесть разные цвета щерсти, но ето будет вопрос уже в количестве case'ов Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 (изменено) core_st: Я не понял, зачем ты количество шерсти даешь строкой, если это число, но это не принципиально. Все же для упрощения, чтобы избежать сравнения строк (хотя это тоже легко сделать стандартной функцией от C или сделав строки типа string, как в C++), изменю тип поля Sherst на int. Тогда функция char* Compare(int maxanimals, char Rozmir, int Sherst, bool Hvist, bool Gruva, int Rusynok, bool Kutuchi){for(int i=0,i<maxanimals;i++)if (ans[i].Rozmir==Rozmir && ans[i].Sherst==Sherst && ans[i].Hvist==Hvist && ans[i].Gruva==Gruva && ans[i].Rusynok=Rusynok && ans[i].Kutuci==Kutuchi)return ans[i].Name; else return "no such animal";} будет искать подходящее животное (тут Animal ans[maxanimals] - массив животных, в описание животного добавлено поле Name названия животного). Изменено 27 марта, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 27 марта, 2010 Жалоба Поделиться Опубликовано 27 марта, 2010 забыл отписаться, что я уже все поля сменил на int или bool. Спасибо за вариант. Реализовал по другому - как и говорил - по цыфровому коду. Там даже не строка, а обычный long int составленый из цыфр-параметров Ссылка на комментарий Поделиться на другие сайты Поделиться
temich5000 Опубликовано 8 апреля, 2010 Жалоба Поделиться Опубликовано 8 апреля, 2010 Привет Всем !!!!!!!!!!! Вот CODE program Project2; {$APPTYPE CONSOLE} uses SysUtils; const rz=['.','?','!'];//разделители концов предложений var f,g:text; s:string; s1:array[1..100] of string; //массив предложений n,i,j:integer; c:array[1..10]of char;//массив разделителей предложений begin { TODO -oUser -cConsole Main : Insert code here } assign(f,'file1.txt'); reset(f); assign(g,'file2.txt'); rewrite(g); j:=1;//начинаем считать предложения while not eof(f) do begin readln(f,s); for i:=1 to length(s) do if s in rz then//если конец begin j:=j+1; //добавляем c[j-1]:=s;//запоминаем разделитель end else s1[j]:=s1[j]+s;//если не конец, записываем предложение в массив end; close(f); for i:=j-1 downto 1 do //с конца, одно предложение(последнее) пустое, убавляем begin write(g,s1,c);//записываем в файл предложение и конец write(s1,c[i-1]);//это просто для контроля на экран, можно убрать end; close(g); readln; end. Программы, которая считывает из текстового файла предложения и выводит их в обратном порядке. А мне нужно написать программу, которая считывает из текстового файла только три предложения и выводит их в обратном порядке. Что нужно изменить ????? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 апреля, 2010 Жалоба Поделиться Опубликовано 8 апреля, 2010 (изменено) temich5000: program Project2;{$APPTYPE CONSOLE}uses SysUtils;const rz=['.','?','!'];var f,g:text; s:array[1..3]of string; c:char; i,j:integer;begin assign(f,'file1.txt'); reset(f); writeln('Done. Exit?');c:=' '; for j:=1 to 3 do s[j]:='';for j:=1 to 3 do begin while not(c='.') and not eof do begin read(f,c); s[j]:=c+s[j]; end; c:=' '; end;close(f); assign(g,'file2.txt'); rewrite(g);for j:=1 to 3 do write(g,s[j]); close(g);end. P.S. Впрочем, я, вероятно, не так понял. Я выводил текст каждого предложения от конца к началу. Если надо выводить просто в обратном порядке номеров предложений, то надо заменить s[j]:=c+s[j]; на s[j]:=s[j]+c; и for j:=1 to 3 в предпоследней строке на for j:=3 downto 1 Изменено 8 апреля, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
temich5000 Опубликовано 8 апреля, 2010 Жалоба Поделиться Опубликовано 8 апреля, 2010 Спасибо огромное !!!!!!!!!! Всё так !!!!!!!!!!!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
leksev Опубликовано 15 апреля, 2010 Жалоба Поделиться Опубликовано 15 апреля, 2010 рябят помогите нужно разработать невизуальный компонент PasswordDialog, предназначенный для запроса строки пароля и его подтверждения. надо на Object Pascal в системе программирования Delphi Ссылка на комментарий Поделиться на другие сайты Поделиться
zidpilot Опубликовано 29 апреля, 2010 Жалоба Поделиться Опубликовано 29 апреля, 2010 помогите найти ошибку в программе excel программа должна выводить если значение макс то писать max если минимальное то min, если не макс и не мин то -, у меня почему то выводит везде - . здесь выложил файл http://www.fayloobmennik.net/21417 Ссылка на комментарий Поделиться на другие сайты Поделиться
DJFlint Опубликовано 29 апреля, 2010 Жалоба Поделиться Опубликовано 29 апреля, 2010 corrected.rar Что-то Вы там дикое в формулах нагородили по принципу "Мы комсомольцы, мы трудности любим". Прикрепил с исправлениями, для сравнения Ваш столбец не трогал, новые формулы создал рядом. ЗЫ: И не надо лист Excelа с формулами называть программой. :) corrected.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
zidpilot Опубликовано 1 мая, 2010 Жалоба Поделиться Опубликовано 1 мая, 2010 Спасибо Огромное Ссылка на комментарий Поделиться на другие сайты Поделиться
san_virtuoz Опубликовано 2 мая, 2010 Жалоба Поделиться Опубликовано 2 мая, 2010 Помогите придумать решение єтой задачи тут нужно проявить фантазию, а у меня фантазия отсутствует! :) --------------------------------- Проектирование и разработка автоматизированной системы обработки данных начислення заработной платы сотрудникам факультета. Создать систему обработки данных, которая состоит из: * бази данних-массива структур, сохраненного в файле; * меню запросов к базе данных которое должно включать команды; - сортировка по каждому полю; - поиск данных по каждому полю для: * выведение потриюной информации на экран; * редактирование отдельных полей; - редактирование базы данных: * удаление записи; * включение новой записи; Ссылка на комментарий Поделиться на другие сайты Поделиться
zidpilot Опубликовано 2 мая, 2010 Жалоба Поделиться Опубликовано 2 мая, 2010 DJFlint прошу прощения, но я затупил так как выкладывал сообщения в торопях. вообщем вот здесь фотка с заданием(забыл написать про интервал сравнения) :D Посмотреть на Яндекс.Фотках Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти