Відмінності між версіями «Wikiстаття учащегося за темою "Програмування"»
(Створена сторінка: {{subst: Шаблон:Вики-статья учащихся}}) |
(→Другие документы) |
||
Рядок 21: | Рядок 21: | ||
== Другие документы == | == Другие документы == | ||
+ | '''Вступ''' | ||
+ | |||
+ | Вивчаючи курс з інформатики за 9 клас ми підійшли до написання творчої роботи у якій ми досліджували: розв’язування задач програмною мовою Turbo Pascal та пошук альтернативних рішень використовуючи базові знання. На наступних етапах нашої роботи ви побачите конкретні приклади розв’язування задач різними методами яких ми навчилися та спробуємо проаналізувати який з них найефективніший. | ||
+ | |||
+ | '''І. Умова задачі''' | ||
+ | |||
+ | Щоб бути завжди чистою, людині необхідно х(24≤х≤50) шматків мила на рік. Якщо мити лише п’яти, то мила знадобиться у 12 разів менше, а якщо мити лише вуха – ще на один шматок менше. Скласти програму, яка за вибором користувача давала б відповідь, яку кількість шматків мила необхідно закупити на n років уперед, щоб: | ||
+ | 1) митися повністю; | ||
+ | 2) мити лише п’яти; | ||
+ | 3) мити лише вуха; | ||
+ | 4) мити п’яти і вуха. | ||
+ | |||
+ | '''ІІ. Розв’язки задачі.''' | ||
+ | |||
+ | Вашій увазі представлені три розв’язки даної задачі: | ||
+ | |||
+ | '''''2.1. Рішення № 1''''' | ||
+ | |||
+ | У розв’язку №1 ми представляємо до вашої уваги рішення задачі за допомогою умовного оператору: | ||
+ | |||
+ | program milo2; | ||
+ | var a,n,r:real; x:real; | ||
+ | begin | ||
+ | writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); | ||
+ | readln(a,n); | ||
+ | if a<24 then writeln ('nelzya') | ||
+ | else if a>50 then writeln('nezya') | ||
+ | else | ||
+ | begin | ||
+ | writeln ('vvedit variant dii'); | ||
+ | writeln (' 1) mitisya povnisty'); | ||
+ | writeln (' 2) miti tilku pyati'); | ||
+ | writeln (' 3) miti tilki vuxa'); | ||
+ | writeln (' 4) miti pyati i vuxa'); | ||
+ | readln(r); | ||
+ | if r=1 then x:=a*n; | ||
+ | if r=2 then x:=a/12*n; | ||
+ | if r=3 then x:=(a/12 -1)*n; | ||
+ | if r=4 then x:=(a/12 + (a/12 - 1))*n; | ||
+ | if r>=5 then writeln ('nelzya'); | ||
+ | writeln ('x=',x:5:0); | ||
+ | end; | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | '''''2.2. Рішення № 2''''' | ||
+ | |||
+ | У розв’язку №2 ми представляємо до вашої уваги рішення задачі за допомогою оператору варіанту case: | ||
+ | |||
+ | program milo1; | ||
+ | var a,r,n,x:real; s:integer; | ||
+ | begin | ||
+ | writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); | ||
+ | readln(a,n); | ||
+ | if a<24 then writeln ('nelzya') | ||
+ | else if a>50 then writeln ('nelzya') | ||
+ | else | ||
+ | begin | ||
+ | writeln ('vvedit variant dii'); | ||
+ | writeln (' 1) mitisya povnisty'); | ||
+ | writeln (' 2) miti tilku pyati'); | ||
+ | writeln (' 3) miti tilki vuxa'); | ||
+ | writeln (' 4) miti pyati i vuxa'); | ||
+ | readln(s); | ||
+ | case s of | ||
+ | 1: x:=a*n; | ||
+ | 2: x:=a/12*n; | ||
+ | 3: x:=(a/12-1)*n; | ||
+ | 4: x:=(a/12 + (a/12-1))*n; | ||
+ | end; | ||
+ | writeln ('x=',x:5:2); | ||
+ | end; | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | '''''2.3. Рішення № 3''''' | ||
+ | |||
+ | У розв’язку №3 ми представляємо до вашої уваги рішення задачі за допомогою оператору циклів goto: | ||
+ | |||
+ | program rozvyazok_1; | ||
+ | label 1,2,3,4,5,6,7; | ||
+ | var a,x,n,r:real; | ||
+ | begin | ||
+ | writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); | ||
+ | readln (a,n); | ||
+ | if a<24 then writeln ('nelzya') | ||
+ | else if a>50 then writeln('nelzya') | ||
+ | else | ||
+ | begin | ||
+ | writeln ('vvedit variant dii'); | ||
+ | writeln (' 1) mitisya povnisty'); | ||
+ | writeln (' 2) miti tilku pyati'); | ||
+ | writeln (' 3) miti tilki vuxa'); | ||
+ | writeln (' 4) miti pyati i vuxa'); | ||
+ | readln(r); | ||
+ | 2: if r=1 then x:=a*n | ||
+ | else goto 3; | ||
+ | writeln ('x=',x:5:0); | ||
+ | 3: if r=2 then x:=a/12*n | ||
+ | else goto 4; | ||
+ | writeln ('x=',x:5:0); | ||
+ | 4: if r=3 then x:=(a/12 - 1) * n | ||
+ | else goto 5; | ||
+ | writeln ('x=',x:5:0); | ||
+ | 5: if r=4 then x:=((a/12 - 1) + a/12) *n | ||
+ | else goto 6; | ||
+ | writeln ('x=',x:5:0); | ||
+ | 6: if r>=5 then writeln('nevozmojno') | ||
+ | else goto 7; | ||
+ | 7: readln; | ||
+ | end; | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | '''Висновки''' | ||
+ | |||
+ | Ознайомившись з літературою ми розв’язали дану задачу обраними операторами розгалуження. Такими як оператор: умови (if), вибору (сase) та варіанту (goto) і проаналізувавши їх, ми дійшли до висновку, що у даній задачі найвигіднішим вийде користування оператором варіанту case так як він: | ||
+ | А) легкий у застосуванні; | ||
+ | Б) найменший за обсягом. | ||
+ | Що робить його найвигіднішим оператором розв’язку для даної задачі. | ||
+ | |||
+ | '''7. Список літератури''' | ||
+ | |||
+ | 1. Верлань А. Ф., Апатов М . В. « Інформатика 10-11» | ||
+ | 2. Шост Д.М. «Інформатик Turbo Pascal» | ||
[[Категорія:Шаблони]] | [[Категорія:Шаблони]] |
Версія за 15:20, 13 травня 2011
Зміст
Назва проекту
Автори проекту
Тема дослідження
Проблемный вопрос (вопрос для исследования)
Гипотеза исследования
Цели исследования
Результаты исследования
Вывод
Полезные ресурсы
Другие документы
Вступ
Вивчаючи курс з інформатики за 9 клас ми підійшли до написання творчої роботи у якій ми досліджували: розв’язування задач програмною мовою Turbo Pascal та пошук альтернативних рішень використовуючи базові знання. На наступних етапах нашої роботи ви побачите конкретні приклади розв’язування задач різними методами яких ми навчилися та спробуємо проаналізувати який з них найефективніший.
І. Умова задачі
Щоб бути завжди чистою, людині необхідно х(24≤х≤50) шматків мила на рік. Якщо мити лише п’яти, то мила знадобиться у 12 разів менше, а якщо мити лише вуха – ще на один шматок менше. Скласти програму, яка за вибором користувача давала б відповідь, яку кількість шматків мила необхідно закупити на n років уперед, щоб: 1) митися повністю; 2) мити лише п’яти; 3) мити лише вуха; 4) мити п’яти і вуха.
ІІ. Розв’язки задачі.
Вашій увазі представлені три розв’язки даної задачі:
2.1. Рішення № 1
У розв’язку №1 ми представляємо до вашої уваги рішення задачі за допомогою умовного оператору:
program milo2; var a,n,r:real; x:real;
begin writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); readln(a,n); if a<24 then writeln ('nelzya') else if a>50 then writeln('nezya') else begin writeln ('vvedit variant dii'); writeln (' 1) mitisya povnisty'); writeln (' 2) miti tilku pyati'); writeln (' 3) miti tilki vuxa'); writeln (' 4) miti pyati i vuxa'); readln(r); if r=1 then x:=a*n; if r=2 then x:=a/12*n; if r=3 then x:=(a/12 -1)*n; if r=4 then x:=(a/12 + (a/12 - 1))*n; if r>=5 then writeln ('nelzya'); writeln ('x=',x:5:0); end; readln;
end.
2.2. Рішення № 2
У розв’язку №2 ми представляємо до вашої уваги рішення задачі за допомогою оператору варіанту case:
program milo1; var a,r,n,x:real; s:integer;
begin writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); readln(a,n); if a<24 then writeln ('nelzya') else if a>50 then writeln ('nelzya') else begin writeln ('vvedit variant dii'); writeln (' 1) mitisya povnisty'); writeln (' 2) miti tilku pyati'); writeln (' 3) miti tilki vuxa'); writeln (' 4) miti pyati i vuxa'); readln(s); case s of 1: x:=a*n; 2: x:=a/12*n; 3: x:=(a/12-1)*n; 4: x:=(a/12 + (a/12-1))*n; end; writeln ('x=',x:5:2); end; readln;
end.
2.3. Рішення № 3
У розв’язку №3 ми представляємо до вашої уваги рішення задачі за допомогою оператору циклів goto:
program rozvyazok_1; label 1,2,3,4,5,6,7; var a,x,n,r:real;
begin writeln ('vvedit kilkist kuskiv mila yaka vam neobxidna i kilkist rokiv'); readln (a,n); if a<24 then writeln ('nelzya') else if a>50 then writeln('nelzya') else begin writeln ('vvedit variant dii'); writeln (' 1) mitisya povnisty'); writeln (' 2) miti tilku pyati'); writeln (' 3) miti tilki vuxa'); writeln (' 4) miti pyati i vuxa'); readln(r); 2: if r=1 then x:=a*n else goto 3; writeln ('x=',x:5:0); 3: if r=2 then x:=a/12*n else goto 4; writeln ('x=',x:5:0); 4: if r=3 then x:=(a/12 - 1) * n else goto 5; writeln ('x=',x:5:0); 5: if r=4 then x:=((a/12 - 1) + a/12) *n else goto 6; writeln ('x=',x:5:0); 6: if r>=5 then writeln('nevozmojno') else goto 7; 7: readln; end; readln; end.
Висновки
Ознайомившись з літературою ми розв’язали дану задачу обраними операторами розгалуження. Такими як оператор: умови (if), вибору (сase) та варіанту (goto) і проаналізувавши їх, ми дійшли до висновку, що у даній задачі найвигіднішим вийде користування оператором варіанту case так як він: А) легкий у застосуванні; Б) найменший за обсягом. Що робить його найвигіднішим оператором розв’язку для даної задачі.
7. Список літератури
1. Верлань А. Ф., Апатов М . В. « Інформатика 10-11» 2. Шост Д.М. «Інформатик Turbo Pascal»