Тролль Опубликовано 1 июня, 2007 Жалоба Поделиться Опубликовано 1 июня, 2007 (изменено) springgirl: А что с ней разбираться? Явно в задании опечатка: картинка от другого задания. Впрочем, нам это неважно. Явных нарушений логики нет. Что сказано, то и сделаем. const M=1; N=3*M; var a:array[1..N,1..N] of integer; i,j,c:integer; beginc:=10; for i:=1 to N do for j:=1 to N do begin a[i,j]:=c; c:=c+1 end;for i:=1 to N do begin for j:=1 to N do Write(a[i,j]:5); Writeln end;WriteLn;for i:=1 to M do for j:=2*M+1 to 3*M dobegin c:=a[i,j]; a[i,j]:=a[i+2*M,j]; a[i+2*M,j]:=c end;for i:=1 to N do begin for j:=1 to N do Write(a[i,j]:5); Writeln end;WriteLn; ReadLnend. Изменено 1 июня, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 1 июня, 2007 Жалоба Поделиться Опубликовано 1 июня, 2007 (изменено) 48. Дана непустая последовательность слов из стpочных pусских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном поpядке все глухие согласные буквы, котоpые входят в каждое нечетное слово и не входят хотя бы в одно четное слово. задачу №48, решить использую процедуры и функции. Процедуры и функции тут нужны, как рыбке зонтик. Но раз просят, номинально выделим часть кода в процедуру и часть - в функцию. var Mt,Mg:set of char; s:string; k:boolean; i:byte; procedure Out; var j:char;begin for j:='а' to 'я' do if j in Mg then Write(j) end;function Ne:boolean; begin Ne:=s[i]>'.' end; begink:=true; Mt:=[]; Mg:=['к','п','с','т','ф'..'щ']; ReadLn(s);for i:=1 to length(s) do if Ne then Include(Mt,s[i]) else begin if k then Mg:=Mg*Mt else Mg:=Mg-Mt; Mt:=[]; k:=not k end;Out; WriteLn; ReadLnend. P.S. Добавляю программу для второй задачи. Принял к сведению, что в предложении не меньше 5 слов, но чем это мне могло быть полезным, не понял. Соответственно и программе это неинтересно. var t:string; i,j,k,l:integer;beginReadLn(t); k:=0; l:=0; t:=t+' ';for i:=1 to Length(t) doif t[i]>='0' then begin k:=k+1; if t[i]='s' then l:=l+1 endelse begin if k<>0 then begin if l=1 then begin for j:=i-k to i-1 do Write(t[j]); WriteLn end;k:=0; l:=0 end; end;WriteLn; ReadLn;end. P.P.S. Вариант решения последней задачи на строку кода короче: var t:string; i,k,l:integer;beginReadLn(t); k:=0; l:=0; t:=t+' ';for i:=1 to Length(t) doif t[i]>='0' then begin k:=k+1; if t[i]='s' then l:=l+1 endelse if k<>0 then begin if l=1 then WriteLn(Copy(t,i-k,k)); k:=0; l:=0 end; WriteLn; ReadLn;end. Изменено 1 июня, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
NOOBER Опубликовано 1 июня, 2007 Жалоба Поделиться Опубликовано 1 июня, 2007 Благодарю за помощь Ссылка на комментарий Поделиться на другие сайты Поделиться
RAStAseLF Опубликовано 3 июня, 2007 Жалоба Поделиться Опубликовано 3 июня, 2007 :( Плиз, помогите решить хотя бы одну задачку,очень сильно надо!Вопрос жизни и смерти.... 1. Найти все глухие согласные, которых нет хотя бы в одном слове.(Вводится непустая строка из строчных букв, заканчивающихся точкой.Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке. Задачу решить с массивом записей.) 2. Выделить из текста целые числа,записанные в 6-ой системе счисления(считать, что они положительны и в тексте встречаются в виде отрицательных "слов") и перевести их в 10-ную систему счисления. 3. Исходный файл состоит из компонент вида:-вид обуви(ботинки,туфли,кроссовки,босоножки,сапоги)-тип(муж,жен,детская)-сезон,-размеры,-артикул,-стоимость.Отобрать инфо для летней детской обуви и упорядочить её по виду, а для одинакового вида по стоимости. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 RAStAseLF: Найти все глухие согласные, которых нет хотя бы в одном слове.(Вводится непустая строка из строчных букв, заканчивающихся точкой.Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке. Задачу решить с массивом записей.)Задача типа: "У одного мальчика было два яблока, у другого три. Сколько яблок было у обоих мальчиков? Решить с применением деления." :) Записи тут нужны как коровам седла. Но раз требуют... var s:string; i:byte; a,b:set of char; g:array [1..10] of record d:char end; begin s:='кпстфхцчшщ'; for i:=1 to 10 do g[i].d:=s[i]; a:=[]; b:=[#48..#255]; ReadLn(s);for i:=1 to length(s) do if s[i]<='.' then begin b:=b*a; a:=[] end else include(a,s[i]);for i:=1 to 10 do if not(g[i].d in b) then Write(g[i].d); WriteLn; ReadLnend. Ссылка на комментарий Поделиться на другие сайты Поделиться
NOOBER Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 Вот еще две задачки. Помогите, пожалуйста, с решением. 48. Два треугольника заданы координатами своих вершин так, как указано в задаче 41. Определить, какой треугольник имеет больший периметр. 41. Даны действительные числа x[1..6], y[1..6]. Точки с координатами (x[1],y[1]),(x[2],y[2]),(x[3],y[3]) рассматриваются как вершины первого треугольника, точки с координатами (x[4],y[4]),(x[5],y[5]),(x[6],y[6]) - второго треугольника. Выяснить, верно ли, что первый треугольник целиком содержится во втором, и если да, определить площадь области, принадлежащей внешнему треугольнику и не принадлежащей внутреннему.(Определить процедуру, позволяющую выяснить, лежат ли две точки в одной полуплоскости относительно заданной прямой, процедуру вычисления расстояния между двумя точками, а также процедуру вычисления площади треугольника по трем сторонам). 49.Ввести натуральное n, состоящее из записи цифрами 0,1,2 и 3. На выходе n должно быть таким, что вначале записи идут 0, затем 1,2 и 3. Напpимеp : 200131 —> 001123 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 (изменено) NOOBER: 48: var j:byte; x,y:array [1..6] of real; l1,l2:real;beginl1:=0; l2:=0; for j:=1 to 6 do begin Write('x[',j:1,']='); ReadLn(x[j]) end;for j:=1 to 6 do begin Write('y[',j:1,']='); ReadLn(y[j]) end;for j:=1 to 3 do l1:=l1+sqrt(sqr(x[j])+sqr(y[j]));for j:=4 to 6 do l2:=l2+sqrt(sqr(x[j])+sqr(y[j]));if l1=l2 then Write('=') else if l1>l2 then Write('1') else Write('2');WriteLn; ReadLnend. 49: var i,j,l:byte; t:char; s:string;beginReadLn(s); l:=length(s);for i:=1 to l do for j:=1 to l-i doif s[j]>s[j+1] then begin t:=s[j]; s[j]:=s[j+1]; s[j+1]:=t end; WriteLn(s); ReadLnend. Изменено 4 июня, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
RAStAseLF Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 Тролль, громадное спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
NOOBER Опубликовано 4 июня, 2007 Жалоба Поделиться Опубликовано 4 июня, 2007 Спасибо, выручил :) Ссылка на комментарий Поделиться на другие сайты Поделиться
springgirl Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 springgirl: А что с ней разбираться? Явно в задании опечатка: картинка от другого задания. Впрочем, нам это неважно. Явных нарушений логики нет. Что сказано, то и сделаем. const M=1; N=3*M; var a:array[1..N,1..N] of integer; i,j,c:integer; beginc:=10; for i:=1 to N do for j:=1 to N do begin a[i,j]:=c; c:=c+1 end;for i:=1 to N do begin for j:=1 to N do Write(a[i,j]:5); Writeln end;WriteLn;for i:=1 to M do for j:=2*M+1 to 3*M dobegin c:=a[i,j]; a[i,j]:=a[i+2*M,j]; a[i+2*M,j]:=c end;for i:=1 to N do begin for j:=1 to N do Write(a[i,j]:5); Writeln end;WriteLn; ReadLnend. Спасибо за ответ и помощь! Вы, кстати, первый кто сказал конкретно и уверенно, что в условии ошибка. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 Нужна помощь. Попросили написать программу-тест на Delphi. Нужно чтобы вопросы, варианты ответа и ключи брались из текстового файла. Желательно чтобы вопросы перемешивались, но не повторялись. У меня нет никаких идей как это сделать... ;) Помогите, пожалуйста ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
NOOBER Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 . Дана непустая последовательность слов из стpочных pусских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном поpядке все глухие согласные буквы, котоpые входят в каждое нечетное слово и не входят хотя бы в одно четное слово. Обьясните, пожалуйста, как решить эту задачу используя МНОЖЕСТВА???? :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 (изменено) Darth Emil: Писать программу целиком довольно долго, но сложного в принципе ничего нет. Создаем массив вопросов и ответов. Допустим, за каждым вопросом идут 5 ответов, потом следующий вопрос с ответами и так далее. Или, несколько удобнее для использования, для вопросника с n вопросами, двумерный массив q:array[1..n,0..5]of string , где 0 будет индексом строки с вопросом, а 1..5 - индексы строк с ответами. Правильный ответ мы всегда будем помещать на первое место среди ответов, то есть он всегда будет в строке с индексом 1. Выводим на экран вопрос и ответы, при этом ответы выводим не по порядку, а по сгенерированной перед выводом ответов случайной последовательности номеров (чтобы правильный ответ не был всегда первым на экране). Ждем ввода номера ответа на экране и находим по нему истинный номер выбранного ответа. Записываем его в массив номеров выбранных ответов (он нужен на случай жалоб, чтобы можно было потом указать на ошибки, если кто-то будет спорить). Затем выводим на экран следующий вопрос и ответы к нему и т.д. Когда тест закончен, проходим по массиву номеров выбранных ответов. Распечатываем номера вопросов с правильными ответами (у правильных ответов истинный номер всегда 1) и номера вопросов с неправильными ответами (у них истинный номер не 1). По отношению количества правильных ответов к количеству вопросов выставляем оценку. Все довольно стандартно, кроме алгоритма вывода всех ответов на вопрос в случайном порядке (тасования номеров ответов перед их выводом на экран). Его можно придумать самому, а можно взять у Кнута - его алгоритм наверняка будет лучше самодельного. Вот демонстрационная программка с этим алгоритмом: const t=5; var m:array [1..t] of integer; l,j,k:integer;beginfor j:=1 to t do m[j]:=j; randomize;for j:=t downto 1 do begin k:=random(j)+1;l:=m[k];m[k]:=m[j];m[j]:=l end;for j:=1 to t do Write(m[j]); WriteLn; ReadLnend. (в массиве m при каждом выполнении этой демонстрационной программки получается перетасованный набор чисел от 1 до 5. Фактически тасование выполняется оператором for j:=t downto 1 ... ) Например, в массиве m получилось 3,2,5,1,4. Выводим на экран ответы 3-й,2-й,5-й,1-й,4-й. Тогда если на экране затем был выбран 4-й сверху ответ, значит, фактически был выбран ответ с истинным номером, равным m[4], то есть 1-й, верный (мы договорились, что верный ответ всегда первый в списке ответов для каждого вопроса). Дальше можно при желании усложнять, например, как у тебя предложено, тасовать и порядок предъявления вопросов. Можно брать текущий вопрос и ответы к нему во временный массив из файла. Можно дать вопросам веса, чтобы некоторые вопросы считались больше влияющими на оценку, а некоторые - меньше. Можно улучшить интерфейс, например, вместо ввода номера ответа на экране можно кликать по нему мышкой, ввести ограничение времени на ответ и показ остающегося для ответа времени и т.д. Лучший путь - сделать сначала самый простой вариант, а потом постепенно его усложнять. Изменено 5 июня, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 Тролль: Спасибо конечно... Но я с массивами многомерными не дружу :) Можно поподробнее? Я собираюсь на RadioButton'ы повесить варианты ответов... Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 июня, 2007 Жалоба Поделиться Опубликовано 5 июня, 2007 (изменено) Darth Emil: Многомерные массивы делают программу понятнее (для меня, во всяком случае). Вопросы и ответы наглядно представляются таблицей, то есть двумерным массивом. Можно и одномерный массив использовать: вопрос, пять ответов, вопрос, пять ответов, вопрос, пять ответов... А выбор номера ответа на экране можно делать и радиокнопками, оформление может быть любым. Я сделал упор на тасование порядка ответов при разных запусках опросника, можно для начала ответы и не тасовать. Начинай с самого простого, усложнять можно до бесконечности. P.S. Вот тебе скелетик (работающий) на Турбопаскале. program questionary;uses crt;const n=50; m=5;var q:array [1..n,0..m] of string[150]; f:text;i,j,l,v,w,r,k:integer; b:array [1..n] of boolean;p:array [1..m] of integer; u:array [1..n] of integer;beginTextbackground(blue); TextColor(yellow);for j:=1 to m do p[j]:=j;for i:=1 to n do u[i]:=i;Assign(f,'test.txt'); Reset(f); l:=0; w:=0; randomize; while not EOF(f) do begin l:=l+1; for j:=0 to m do ReadLn(f,q[l,j]) end;for i:=l downto 1 do begin r:=random(i)+1;v:=u[r];u[r]:=u[i];u[i]:=v end;for i:=1 to l do begin clrscr; delay(50000); WriteLn(q[u[i],0]); WriteLn; for j:=m downto 1 do begin r:=random(j)+1;v:=p[r];p[r]:=p[j];p[j]:=v end; for j:=1 to m do WriteLn(j,') ',q[u[i],p[j]]); WriteLn; Write('Nomer praviljnogo otveta? '); v:=Ord(ReadKey)-48; b[i]:=p[v]=1; end;for i:=1 to l do if b[u[i]] then w:=w+1;clrscr; WriteLn(' Praviljnih otvetov: ',w); ReadLnend. Берет вопросы и ответы из файла test.txt (максимально 50 вопросов, хотя в файле их может быть и меньше, за каждым вопросом должно быть по 5 ответов, примитивный пример файла с таблицей умножения - в приложении). Естественно, внутри программы все это можно изменить заданием других значений констант. Порядок предъявления вопросов и вариантов ответов к каждому вопросу автоматически тасуется. Ну а мясо (настройки и оформление) уже можно навешивать на скелетик по собственному вкусу. test.txt test.txt Изменено 10 июня, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
karlusha Опубликовано 15 июля, 2007 Жалоба Поделиться Опубликовано 15 июля, 2007 Приветствую Вас! Понравилось название раздела. А вдруг действительно прокатит? Сам я деревянный, возможно и вопрос будет смешным: Есть у меня навигатор ТомТом. В самой программе есть функция планирования многоточечного маршрута, но вот функции его оптимирования нет. Т.е. навигация поведёт по точкам в том порядке, в котором заложил пользователь. Знаю, что есть программы (iGo и map&guide например), имеющие такую возможность. Вот я и подумал о двух вариантах: 1.Добавить в томтом эту функцию. 2.Добавить в пользовательское меню приложение с другой программой (важный момент: вроде как в «коробочке» томтом нет винда). Заранее благодарен за ВСЕ ответы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rubin Опубликовано 28 июля, 2007 Жалоба Поделиться Опубликовано 28 июля, 2007 Кто сможет помочь? Очень надо! Нужна помощью тех кто хорошо разбирается в Access 2000. Имеется Форма в которой задаётся определённый пользователь и его пассворт, при нажатии кнопки должена открытся другая Форма в которой находятся данные только этого пользователя. С VBA или Makro всёровно. Заранее сапсибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
futin Опубликовано 29 июля, 2007 Жалоба Поделиться Опубликовано 29 июля, 2007 Здравствуйте, нужна программа, вычисляющая Жорданову нормальную форму матрицы. Язык - С++. Могу выслать пример решения для понимания алгоритма. Ссылка на комментарий Поделиться на другие сайты Поделиться
neic Опубликовано 29 июля, 2007 Жалоба Поделиться Опубликовано 29 июля, 2007 Rubin Думаю можно реализовать, но сложновато. Какие функции ты предполагаешь давать пользователю, после ввода личных данных? П.с. 2000 аксес не стоит. Думаю там не сильно отличается от 2007, всмысле создании макросов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 30 июля, 2007 Жалоба Поделиться Опубликовано 30 июля, 2007 Здравствуйте, нужна программа, вычисляющая Жорданову нормальную форму матрицы. Язык - С++. Могу выслать пример решения для понимания алгоритма. Пожалуйста, покажите алгоритм, попробую помоч Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 30 июля, 2007 Жалоба Поделиться Опубликовано 30 июля, 2007 Darhazer: Алгоритм не секретный Но кодировать его слишком долго. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rubin Опубликовано 31 июля, 2007 Жалоба Поделиться Опубликовано 31 июля, 2007 Спасибо что ктото откликнулся([Neic). И так, Neic имеются 2 типа пользователей(Админ(Admin), и простой ползователь). Админ имеет само-собой все права. Простой узер (User), при внесении его логина и пассворта открывается форма(Formular) в которой только его определённые данные, в которые он может внести, изменить и сохранить. Так немного понятнее? Если нет то пиши, буду рад любой помощи. А Access 2000 или другая версия не важно. Так как это я думаю всё пишится в VBA. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 24 октября, 2007 Жалоба Поделиться Опубликовано 24 октября, 2007 Привет. Интересует, либо батник, либо утилитка, которая делала бы переконнект каждые 50мин. Думаю, кто шарит в программировании, несложно будет написать. Заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 26 октября, 2007 Жалоба Поделиться Опубликовано 26 октября, 2007 Wu-Tang: Есть стандартная виндовая команда rasdial, думаю ее функционала должно хватить пишем в батнике нечто вроде rasdial имя_соединения /DISCONNECTrasdial имя_соединения имя_пользователя пароль у тебя вообще соединение через что? ну а дальше можно его либо стандартным планировщиком запускать, либо любым другим, либо вообще цикл в программе соорудить соорудить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Wu-Tang Опубликовано 26 октября, 2007 Жалоба Поделиться Опубликовано 26 октября, 2007 Maikll: Это только разъединять будет, а мне то надо, чтоб разъединяла, соединяла, разъединяла, соединяла, каждые 50 минут. rasdial ZyXEL ADSL Link /disconnectrasdial ZyXEL ADSL Link ptn ptn Это данные соединения (ADSL). Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти