15.06.2011, 09:29 | #1 (permalink) |
Новичок
Регистрация: 11.06.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Три задания по Pascal'ю
2) В рускоязычном текстовом файле, определить, сколько раз в нем встречается самое короткое слово. 3) В прямой 4х угольной призме провести сечение, проходящее через сторону нижнего основания под углом 60 градусов к нему. |
15.06.2011, 09:29 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Могу вам помочь этими ссылками, прочитайте внимательно Курсовые задания по информатике в VB Задания по работе с палитрой компонентов Additional. Delphi Решение задания по С#, исправьте, что не так. Назначение задания для выполнения в определённое время Помогите решить задания по информатике. Помогите, пожалуйста, решить задания по Паскалю |
15.06.2011, 10:42 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так. Прежде всего, мне кажется, Вы несколько превратно поняли суть работы нашего форума. Из того, что Вам помогли с простенькой задачкой, вовсе не следует, что отныне можно перестать учиться, а все полученные задания тупо вываливать сюда, нажимать кнопочку и ждать, когда появятся готовенькие решения. Решили жизнь чужим умом прожить? Не выйдет. Так что мой Вам совет - беритесь за ум, пока не поздно. За собственный.
Теперь по задачам. 1. Тривиальное упражнение школьного уровня. Давайте самостоятельно. 2. Тут бы я Вам помог, если бы не условие, что текст русский. Заморачиваться с множественными кодировками кириллицы (у меня - DOS-Паскаль) - извините, не буду. Если бы текст был латиницей, то - пожалуйста. А так - нет. 3. Тут Вам немного повезло. Недавно я решал такую задачку, с единственной разницей, что угол был не 60°, а 30°. Поэтому можете взять решение отсюда: В прямой четырехугольной призме провести сечение, проходящее через сторону нижнего ос, пост #10, заменив там строки ZC:=100*tan(Pi/6); ZD:=50*tan(Pi/6); на ZC:=100*tan(Pi/3); ZD:=50*tan(Pi/3); Должно получиться так: |
16.06.2011, 00:06 | #3 (permalink) |
Новичок
Регистрация: 11.06.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Разумеется, я и сам пробывал решать эти задачи...
1. Дошел до того, что выстраиваю все члены массива по убыванию, но если массив содержит более 1000 элементов? Это уже не удобно... 2. Владимир, я думаю, что латиницы будет мне достаточно, что бы понять с чем мне работать, ведь, как я понимаю, дело в кодировках? 3. Благодарю! Хи: Самое трудное решается быстрее... |
16.06.2011, 09:35 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
1. Находим максимальный элемент стандартным алгоритмом. 2. Повторяем, поставив доп. условие, что следующий "максимальный" элемент должен быть, конечно, больше остальных, но меньше уже найденного в п.1. Или, как вариант, все элементы массива, имеющие максимальное значение, заменить, например, нулями, после чего повторить процедуру. 3. Выводим результат поиска по п.2. |
|
16.06.2011, 11:16 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const Smb=[' ',',','.','?','!',':',';','"','(',')','-']; VAR S:String; W:Array[1..1000] of String; i,j,i1,i2,Ifix:Integer; leng,N,N_short:Byte; f:Text; BEGIN Assign(f, 'D:\fff.txt'); ReSet(f); N:=0; REPEAT ReadLn(f,S); i:=0; Repeat Repeat Inc(i); Until (Not (S[i] in Smb)) or (i=Length(S)); If i<Length(S) then begin i1:=i; While (Not (S[i] in Smb)) and (i<Length(S)) do begin Inc(i); i2:=i; end; If (S[i] in Smb) and (i<Length(S)) then begin Inc(N); W[N]:=Copy(S,i1,i2-i1); end; If (Not (S[i] in Smb)) and (i=Length(S)) then begin Inc(N); W[N]:=Copy(S,i1,i-i1+1); end; end; Until i=Length(S); UNTIL EoF(f); Close(f); leng:=255; For i:=1 to N do If Length(W[i])<leng then begin Ifix:=i; leng:=Length(W[i]); end; Writeln('The shortest word is "'+W[Ifix]+'"'); Writeln; N_short:=0; For i:=1 to N do If W[i]=W[Ifix] then Inc(N_short); Writeln('It occurs ',N_short,' times'); ReadLn END. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
21.06.2011, 09:02 | #6 (permalink) |
Новичок
Регистрация: 11.06.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Благодарю, Владимир!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|