Тролль Опубликовано 14 ноября, 2005 Жалоба Поделиться Опубликовано 14 ноября, 2005 Сим-Сим88: var I,N: Integer; Mid,Sum,Min,Max: Real; A: array [1..100] of Real; begin ReadLn(N); {ввели, сколько чисел будет введено} for I:=1 to N do ReadLn(A); {ввели числа в массив} Max:=A[1]; Min:=A[1]; Sum:=0; for I:=1 to N do begin Sum:=Sum+A; if A<Min then Min:=A; if A>Max then Max:=A; end; Mid:=(Sum-Max-Min)/(N-2); WriteLn(Mid); end. Надеюсь, все понятно: пробегаем по массиву, накапливая сумму всех чисел в Sum (часто используемый для однообразия вычислений прием - сначала копилку Sum опустошаем, а потом добавляем в нее числа в цикле по массиву). Заодно при пробежке по массиву замечаем максимальное и минимальное числа, сравнивая текущий элемент массива с бывшими до того максимумом и минимумом и корректируя их на будущее, если кто-то из них перекрыт. Для начала кладем максимум и минимум равными первому числу массива. После пробежки по массиву осталось вычесть из суммы максимум и минимум и найти среднее. Подвох: раз мы не учитываем максимум и минимум, то и число элементов для вычисления среднего надо подкорректировать на два. Поэтому, кстати, вводимых чисел должно быть не меньше трех, чтобы среднее считалось хотя бы по одному числу. Замечу дополнительно, что максимальным числом элементов в массиве мы сразу назначили заранее определенное число 100, потому что так проще. А создание массива с не фиксированной, а вводимой в ходе выполнения программы длиной (то есть A[1..N]), что вроде бы логичнее, делается сложнее и на более продвинутом уровне изучения языков программирования, да и сильно увеличивает время выполнения программы за счет длительной операции динамического выделения памяти. Правда, для нашей программы и времени, и памяти требуется - кот наплакал. Чтобы программа была совсем хорошей, полезно вставить в ее текст проверку, чтобы вводимых чисел было не меньше трех и не больше 100, иначе программа должна прекращать работу с выдачей объяснения, а также вставить подсказки к вводу и выводу типа WriteLn('Введите, сколько элементов будет в массиве'); и т.п., но это не обязательно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Сим-Сим88 Опубликовано 15 ноября, 2005 Жалоба Поделиться Опубликовано 15 ноября, 2005 Тролль: Большое спасибо! На такое объяснение я и не смел надеяться Ссылка на комментарий Поделиться на другие сайты Поделиться
Lavyrev Опубликовано 20 ноября, 2005 Жалоба Поделиться Опубликовано 20 ноября, 2005 Нужен совет. Задача: записать на флэш диск (32GB-72GB с интерфейсом АТА) информацию одним файлом с микроконтроллера, а затем сбросить её на компьютер через USB(если аппарат вернётся целым) или напрямую (по АТА). Вопрос: можно ли не использовать FAT. NTFS и т.п. или без этого задача невыполнима. Ссылка на комментарий Поделиться на другие сайты Поделиться
aTeos Опубликовано 23 ноября, 2005 Жалоба Поделиться Опубликовано 23 ноября, 2005 pinmix: задача:Ввести строку. Заменить знаки препинания на сокращения. поясняю: сначала ты вводишь текст... например: "Сижу. Пишу." затем нажимаешь [Enter] и в резльтате он должен вывести что-то типа: "Сижутчк Пишутчк" Держи, если не поздно :( main.rar main.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
vodoley Опубликовано 24 ноября, 2005 Жалоба Поделиться Опубликовано 24 ноября, 2005 Доброго времени суток всем участникам форума. Требуется программулька с примерно такими свойствами: - работает под ВинХР в окне фиксированного размера "always on top" (если получится, окно еще хорошо б перемещать мышкой) - интерфейс пльзователя - восемь кнопок с надписями по русски - при нажатии мышкой на кнопку прога должна отправить на порт TCP/IP сообщение вида: http://<IP>/cgi-bin/senddata.cgi?data=<ASCII> - при отпускании кнопки - тоже, но с другим <ASCII> (каждой кнопке - свой ASCII код на нажатие и единый для всех на отпускание) - используемый в сообщении IP должен вводиться пользователем, как параметр, при инсталляции. Может, кто возьмется такое сотворить? Язык непринципиален, но предпочтительно на VB, чтоб смог в будущем сам вводить небольшие поправки, если потребуется. Ссылка на комментарий Поделиться на другие сайты Поделиться
O1egarX Опубликовано 27 ноября, 2005 Жалоба Поделиться Опубликовано 27 ноября, 2005 Как защитить программу так, чтобы она считывала имя пользователя компьютера и принимала пароль подходящий только для этого пользователя? Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 27 ноября, 2005 Автор Жалоба Поделиться Опубликовано 27 ноября, 2005 O1egarX На клиенте считать имя компьютера, или любые другие идентификационные данные, и вместе с регистрационным ключом программы отправить на регистрацию на сервер. На сервере проверяется валидность регистрационного ключа. Затем полученные идентификационные данные шифруются обратимым шифрованием, и отправляются на клиента в виде ключа подтверждения регистрации. На клиенте полученный ключ расшифровывается и из него достаются идентификационные данные. Затем они сверяются с реальными данными, считанными с компьютера. Если совпали - все ок. Если нет - значит это чужой ключик. P.S. А затем Вася Пупкин, знатных хакер, проходится дизассемблером по твоей проге, и пишет кейген для нее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 ноября, 2005 Жалоба Поделиться Опубликовано 27 ноября, 2005 O1egarX: Не совсем понял смысл задачи. Все знают пароль, а подходит он только для определенного пользователя? Тогда зачем вообще пароль, достаточно проверить имя текущего пользователя? Ссылка на комментарий Поделиться на другие сайты Поделиться
pinmix Опубликовано 27 ноября, 2005 Жалоба Поделиться Опубликовано 27 ноября, 2005 aTeos: Держи, если не поздно :( Спасибо за помощь, но я же сам сделал. Но бду очень благодарен Если мне кто-нибудь поможет сделать еще одну работку (это моя последня лаб-а): Если кто знает книжку Риччи и Кернигана "Програмирование С и С++", это задачка от туда(задача №2.6). "Напишите функцию setbits(x,p,n,y) возвращающую значение x, в котором n битов, начиная с p-ой позиции, заменены на n правых разрядов из y (остальные биты не изменяются)" Поясняю вводится два десятичных числа в компе они представляются в двоичном коде например: 1001110101 1000101101 вывести комп должен: 1001101101 (в десятичном виде) Из первого введенного числа X n=5 бит (отмечены красным) начиная с p=2 (если кто не помнит в С нумерация начинается с 0), заменены на n=5 правых разрядов (отмечены зеленым) числа Y. Извиняюсь... Спасибо за помощь, но я же сам сделал. "Уже сделал" Ссылка на комментарий Поделиться на другие сайты Поделиться
pinmix Опубликовано 27 ноября, 2005 Жалоба Поделиться Опубликовано 27 ноября, 2005 aTeos: А задачку со знаками препинания я делал с помощью массива с указателем: *znak{.,:?} Ссылка на комментарий Поделиться на другие сайты Поделиться
FeRRuM Опубликовано 28 ноября, 2005 Жалоба Поделиться Опубликовано 28 ноября, 2005 Выручайте!!! Надо исходники игры Висилица на Delphi. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 28 ноября, 2005 Жалоба Поделиться Опубликовано 28 ноября, 2005 Я делал чтото вроде "Висилица" но не словом, а с цветним кругчикам. Если тебе поможет, сорс находеться в "Наши с вами исходники" Надо только его не много отредактировать Ссылка на комментарий Поделиться на другие сайты Поделиться
Danil Опубликовано 5 декабря, 2005 Жалоба Поделиться Опубликовано 5 декабря, 2005 (изменено) 1. Напишите программу, которая показывает, как можно обработать родственные исключения, приведите, по крайне мере, два способа. 2. Написать программу, работающую с безопасным массивом, в котором выход за пределы массива генерирует пользовательское исключение. Обработать исключение, предложив задать другие параметры. 3. Написать программу, в которой необходимо отсортировать массивы вещественных, целых, символьных типов методом вставки. Программа должна сортировать и массивы строк. Но для сортировки массива вещественных чисел использовать сортировку методом пузырька. i Уведомление:Темы соединил. Shurr. Изменено 5 декабря, 2005 пользователем Shurr Ссылка на комментарий Поделиться на другие сайты Поделиться
elsp Опубликовано 6 декабря, 2005 Жалоба Поделиться Опубликовано 6 декабря, 2005 (изменено) Кто в С разбирается - выручите, пожалуйста. Я запутался.. Нужно написать мелкую прогу: - прога из *.txt считывает текст; - форматирует текст так, чтобы между словами был бы только 1 пробел; - форматирует текст так, чтобы между предложениями было бы 2 пробела; - результаты выводятся на экран и записываются в файл данных (я так понимаю другой файл); Забыл сказать, что программу надо написать посредством функций, т.е. всего должно быть 4 функции. З.Ы. Если не трудно, прилепите плиз объяснение как она работает... Помогите, через неделю сессию, а я эту задачу ни бум-бум Изменено 6 декабря, 2005 пользователем elsp Ссылка на комментарий Поделиться на другие сайты Поделиться
Сим-Сим88 Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 А я опять пристаю с паскалем От этой работы зависит мой автомат по ИВТ. В заданной матрице A m*n найти минимаксный элемент и номер строки, в которой он расположен. Минимаксный- минимальный из максимальных элементов строк. Буду премного благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 декабря, 2005 Жалоба Поделиться Опубликовано 8 декабря, 2005 Сим-Сим88 По накатанной дорожке... поиграем мы в матрешки. То же самое, задача на поиск максимума/минимума/суммы, только представители строк (максимумы) нам придется вычислять на ходу внутри алгоритма нахождения минимума. Единственное, что я изменю в алгоритме поиска максимума/минимума - в качестве начального значения для сравнений возьму не первый элемент ряда, а просто заведомо очень большое отрицательное (или, для поиска минимума, очень большое положительное) число. Так текст будет короче, потому что во внешнем цикле вначале я ни одного элемента не знаю, они вычисляются в процессе его выполнения во внутреннем цикле. Значения этих чисел я беру -1e38 и 1e38, потому что они близки к предельным значениям для типа Real. var I,J,M,N,K: Integer; Min,Max: Real; A: array [1..100,1..100] of Real; begin WriteLn('Введите размерности матрицы (через пробел)',M,N); ReadLn(M,N); for I:=1 to M do begin WriteLn('Введите элементы',I,'-й строки, разделяя их пробелами'); for J:=1 to N do Read(A[i,J]); end; Min:=1e38; {проведем цикл по всем строкам} for I:=1 to M do begin {ищем максимум по строке} Max:=-1e38; for J:=1 to N do if A[i,J]>Max then Max:=A[i,J]; {нашли максимум в I-ой строке} if Max<Min then begin Min:=Max; K:=I end; {заменили минимальный максимум, если у этой строки максимум меньше прежних, и запомнили номер строки} end; WriteLn; WriteLn('Минимум среди максимальных элементов строк: ',Min,' в строке',K); end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 9 декабря, 2005 Жалоба Поделиться Опубликовано 9 декабря, 2005 Вообщем есть одна чудо - прога - оффсайт вот. Можно ли ее перекроить под другой браузер, скажем под Opery и добавить список сайтов, где она ищет? Надеюсь, кто-н сможет это сделать или объяснить как это делается! Ссылка на комментарий Поделиться на другие сайты Поделиться
cudla Опубликовано 11 декабря, 2005 Жалоба Поделиться Опубликовано 11 декабря, 2005 HELP Логической переменной t присвоить значение true или false в зависимости от того, является натуральное число R , не большее 100000, степенью целого N или нет. Как это на паскале сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Stolik Опубликовано 11 декабря, 2005 Жалоба Поделиться Опубликовано 11 декабря, 2005 (изменено) cudla Насколько я понял, задание такое: есть число N. Надо проверить, является ли число R степенью этого числа. Первое, что пришло мне в голову. Прога написана "в лоб", но, вроде как, работает =) {=================} Program In_Power; uses Crt; type my = real; var R, N : my; procedure Check(R, N : my); var t : boolean; i : word; Tmp: my; begin {check} t:= false; if R = N then begin writeln('R = N, R = N^1'); readln; halt; end; if R = 1 then begin writeln('R = 1, R = N^0'); readln; halt; end; if N = 1 then begin writeln('N = 1, не надо пытаться повесить программу!!!'); readln; halt; end; i:= 1; Tmp:= N; repeat inc(i); Tmp:= Tmp*N; if R = Tmp then begin writeln('Чувак, тебе повезло!!! ',R:10:0,' = ', N:10:0,'^',i); t:= true; writeln('t = ',t); readln; halt; end; until Tmp >= R; writeln(R:10:0, ' не степень ',N:10:0); writeln('t = ',t); readln; halt; end; {check} {-------------------} begin {In_Power} clrscr; write('Проверяемое число N = '); readln(N); write('Возможная степень числа ',N:10:0,', R = '); readln; Check(R, N); end. {In_Power} Изменено 11 декабря, 2005 пользователем Stolik Ссылка на комментарий Поделиться на другие сайты Поделиться
killogramm Опубликовано 11 декабря, 2005 Жалоба Поделиться Опубликовано 11 декабря, 2005 Попалась мне такая лаба на Паскале :Объединить две односвязные очереди Q1 и Q2 в одну упорядоченную по убыванию весов очередь Q. В принципе я представляю как ее сделать, только вот не знаю, что такое весы :) . Может кто-нибудь знает что это такое? :sm(100): Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 декабря, 2005 Жалоба Поделиться Опубликовано 11 декабря, 2005 cudla: Более короткий, чем у Stolik'а, вариант: var t:Boolean; M,R,N:LongInt; begin Writeln('Введите R и N, разделив их пробелом'); ReadLn(R,N); M:=1; repeat M:=M*N; t:=R=M until (M>100000) or (Abs(N)<2) or (Abs(N)>1000) or t; WriteLn(t); end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Сим-Сим88 Опубликовано 11 декабря, 2005 Жалоба Поделиться Опубликовано 11 декабря, 2005 Тролль: ну как всегда, не могу найти слов чтоб выразить восторг перед твоими способностями, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
ALISKa_16 Опубликовано 12 декабря, 2005 Жалоба Поделиться Опубликовано 12 декабря, 2005 Ребята,спасите!!!!! задали работу по информатике в паскале,а почти в нем ничего не знаю.нужно сделать часики,которые ходят и ровно в 8.00 начинают звенеть,что-то типа будильника,соответственно реальному времени,помогите,пожалуста,очень надо Ссылка на комментарий Поделиться на другие сайты Поделиться
Stolik Опубликовано 12 декабря, 2005 Жалоба Поделиться Опубликовано 12 декабря, 2005 ALISKa_16 А можно поподробнее? Чего еще должна прога делать? Какие часы? Графические или циферок достаточно? КарочЪ самый примитивный вариант ВОТ: ====================== Program Clock; uses Crt, Dos; var Hour, Minute, Second, S100 : word; begin clrscr; repeat window(1, 1, 80, 25); GetTime(Hour, Minute, Second, S100); writeln(Hour:2,' : ', Minute:2,' : ', Second:2); if (Hour = 8) and (Minute = 0) then begin window(1, 2, 80, 25); writeln('Будильник будет звенеть ровно 1 минуту!'); Sound(1000); delay(10000); {Этот параметр зависит от компа!} NoSound; clrscr; end; until KeyPressed; end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 декабря, 2005 Жалоба Поделиться Опубликовано 12 декабря, 2005 killogramm: Вес - число, сопоставленное элементу множества, часто просто его значение. Например, веса дуг в графе (наборе точек, соединенных линиями) - числа, характеризующие эти линии, это могут быть их длины, или стоимость или время перехода по этой линии от одной точки к другой, или еще какие-нибудь числа, надписанные над линиями. Не совсем ясно, из чего состоят твои очереди. Скорее всего, требуется просто составить очередь, упорядоченную по убыванию величин элементов. В общем случае в алгоритме используют, но не пишут функцию для сравнения элементов, а в пояснении к алгоритму пишут: сравнение элементов должно выполняться функцией с таким-то именем, параметрами которой служат два элемента и выдающей булевское значение true, если элемент в первом параметре имеет больший вес, чем во втором, и false, если это не так. Так делают при описании алгоритмов, но скорее всего, это слишком закрученный вариант для лабораторной работы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти