 |
Вітаю Вас, Гість · RSS |
 |
ДПА 2010 Варіант 9
| |
Bandalak |
Дата: Fr, 16.04.2010, 02:36 | Повідомлення № 1 |
Лідер форуму
Повідомлень: 6386
| Для тих, у кого немає збірника завдань з диском та відповідями, тут можна скачати: Перша та друга частина, усі варіанти (12,95 Mb); Третя частина, усі варіанти (6,59 Mb); Додаткові фали до третьої частини, усі варіанти (16,38 Mb); Відповіді авторів до 1-ї та 2-ї частин, усі варіанти. Бланк відповідей та протокол ДПА (272 kb). Дякуємо за сканування - yanasklyar, за відповіді - Ktara, за упорядкування матеріалів - volodschool2 та bandalak. Шановні форумчани!!!!! Повідомлення, які не відповідають темі, або несуть некорисний зміст будуть видалятись без попередження!!! Відразу кидається в очі, що завдання 12 набагато складніше від попередніх варіантів, особливо від 8-го! 
Відредаговано: Ktara - We, 21.04.2010, 15:11 |
|
| |
yanasklyar |
Дата: Fr, 16.04.2010, 11:02 | Повідомлення № 2 |
Тут живе...
Повідомлень: 100
| Питання 1 Відповідь D Питання 2 відповідь D Питання 3 відповідь C Питання 4 відповідь B Питання 5 відповідь С Питання 6 відповідь A Питання 7 відповідь А Питання 8 відповідь A Питання 9 відповідь C Питання 10 відповідь B Питання 11 C Питання 12 відповідь B Питання 13 C:\BOOK\PR1 Питання 14 відповідь приблизно 7,8 Питання 15 відповідь BDCAE Питання 16 відповідь 7 Питання 17 CBDA Питання 18 ABD
|
|
| |
KulAlex |
Дата: Fr, 16.04.2010, 11:34 | Повідомлення № 3 |
Знаток програмування
Повідомлень: 326
| Птання 21. var s:string; k,i:integer; begin readln(s); s:=s+' '; // забираємо лишні пробіли, залишивши тільки по одно після кожного слова while pos(' ',s)<>0 do delete(s,pos(' ',s),1); k:=0; for i:=1 to length(s) do if s[i]=' ' then inc(k); writeln(k) end.
|
|
| |
mefel |
Дата: Fr, 16.04.2010, 11:43 | Повідомлення № 4 |
Новий користувач
| Quote (yanasklyar) Питання 14 відповідь приблизно 7,8 512000бит/с * 16с / 8бит / 1024байт=1000 килобайт
|
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 11:44 | Повідомлення № 5 |
Лідер форуму
Повідомлень: 6386
| Quote (mefel) 512000бит/с * 16с / 8бит / 1024байт=1000 килобайт Абсолютно правильно, тільки одиниці вимірювання у Вас вийшли 1/байт 512000 бит/с * 16 с / 8 бит/байт / 1024 кбайт/байт=1000 кбайт Quote (KulAlex) Птання 21. Цю задачу треба практично протестити. У Вашій версії - 1) видаляються абсолютно всі пробіли у тексті, а потрібно по одному лишити; 2) треба друкувати к+1, бо коли є один пробіл - то два слова. Наприклад циклом while(pos(' ',s) = 1) and(length(st) > 0) do delete (s,1,1); можна видалити всі прогалини що йдуть спереду, а потім будемо рахувати тільки останній пробіл перед кожним словом. k:=1; так як у реченні одне слово є завжди, крім випадку коли воно складалося із самих пробіів, тоді к=0 for i:=1 to length(s)-1 do if (s[i]=' ') and (s[i+1]<>' ') then inc(k);
|
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 12:37 | Повідомлення № 6 |
Лідер форуму
Повідомлень: 6386
| Моя версія розв'язку: var s:string; k,i:integer; begin writeln('Введіть речення'); readln(s); s:=s+' '; while(pos(' ',s) = 1) and(length(s) > 0) do delete (s,1,1); if s='' then k:=0 else k:=1; for i:=1 to length(s)-1 do if (s[i]=' ') and (s[i+1]<>' ') then inc(k); writeln('Кiлькiсть слiв у даному реченнi - ',k); readln end.
|
|
| |
pasichov |
Дата: Fr, 16.04.2010, 12:44 | Повідомлення № 7 |
Наполегливий учасник
Повідомлень: 946
| Задача 9_21 Program V9_21; var s:string; k,i:integer; begin readln(s); {читаємо стрічку з клавіаткури} s:=' '+s; {додаємо пропуск в початок для коректної обробки першого (чи єдиного) слова } k:=0; {спочатку результат - 0 } for i:=2 to length(s) do if (s[i]<>' ')and (s[i-1]=' ')then inc(k); {якщо попередній символ пропуск, а поточний ні - це нове слово} writeln(k) end. Попередньо наведений розв"язок KulAlex не вірний, Bandalaк - не ефективний, багато лишніх дій
Відредаговано: pasichov - Fr, 16.04.2010, 12:48 |
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 12:48 | Повідомлення № 8 |
Лідер форуму
Повідомлень: 6386
| Quote (pasichov) Попередньо наведений розв"язок не вірний. Котрий із попередніх?
|
|
| |
pasichov |
Дата: Fr, 16.04.2010, 12:51 | Повідомлення № 9 |
Наполегливий учасник
Повідомлень: 946
| Quote (Bandalak) Котрий із попередніх? Коли писав, то був лише 1. В вашому все вірно, але лишні пропуски не варто вилучати -- вони не заважають...Вдвічі зргостаэ складність(часова) алгоритму. І хоча в таких задачах наче це не важливо, але....алгоритм повинен бути максимально ефективнмм. Та й інтерфейс (повідомлення) в задачах з інформатики не вважається потрібним, на відміну від прикладних програм
Відредаговано: pasichov - Fr, 16.04.2010, 12:56 |
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 12:53 | Повідомлення № 10 |
Лідер форуму
Повідомлень: 6386
| Quote (pasichov) , Bandalaк - не ефективний, багато лишніх дій Згоден, у Вас вишло лаконічніше!!! Quote (pasichov) Та й інтерфейс (повідомлення) в задачах з інформатики не вважається потрібним Коли через файл - то зрозуміло, а коли клава-монітор - то можна трошки і прикрасити повідомленнями.
|
|
| |
KulAlex |
Дата: Fr, 16.04.2010, 13:11 | Повідомлення № 11 |
Знаток програмування
Повідомлень: 326
| Прошу вибачення, но при копіювані пропали пропуски, але вони там були var s:string; k,i:integer; begin readln(s); s:=s+' '; // забираємо лишні пробіли, залишивши тільки по одно після кожного слова while pos(' ',s)<>0 do // тут два delete(s,pos(' ',s),1); // тут два if s[1]=' ' then delete(s,1,1); k:=0; for i:=1 to length(s) do if s[i]=' ' then inc(k); writeln(k) end. а на рахунок лишнів пропусків, має бути культура набору тексту, тільки один пропуск між словами
Відредаговано: KulAlex - Fr, 16.04.2010, 14:15 |
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 13:43 | Повідомлення № 12 |
Лідер форуму
Повідомлень: 6386
| KulAlex, Працює не завжди правильно
|
|
| |
Bandalak |
Дата: Fr, 16.04.2010, 14:29 | Повідомлення № 13 |
Лідер форуму
Повідомлень: 6386
| Мій варіант після уроку pasichov. Якщо чесно, мої думки KulAlex трохи запутав. var s:string; k,i:integer; begin writeln('Введiть речення'); readln(s); s:=s+' '; k:=0; for i:=1 to length(s)-1 do if (s[i]=' ') and (s[i+1]<>' ') then inc(k); writeln('Кiлькiсть слiв у даному реченнi - ',k); readln end. Практично те ж саме що і у pasichov, тільки з іншого боку! 
|
|
| |
svbor |
Дата: Sa, 17.04.2010, 18:08 | Повідомлення № 14 |
Прописаний назавжди
Повідомлень: 265
| Quote (yanasklyar) Питання 18 ABD В мене на це. як завжди свій погляд. Я вважаю алфавітним порядком не літери, номерів завдань, а літери з яких починаються змінні. Тому моя відповідь DAB
|
|
| |
Bandalak |
Дата: Sa, 17.04.2010, 18:20 | Повідомлення № 15 |
Лідер форуму
Повідомлень: 6386
| svbor, тут знову несвідоме формулювання. В умові пише, в алфавітному порядку літери що відповідають можливим іменам змінних. Хоча логічніше би було сформулювати так: Запишіть літери, яким відповідають можливі імена змінних, розміщених в алфавітному порядку.
|
|
| |
© Форум інформатиків України, 2007-2022.  |