Ср, 22.11.2017, 05:47
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 1 з 512345»
Модератор форуму: Ktara, Bandalak, НІКОЛЯ, volevikt 
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Розв'язуємо задачі в стилі Python (Відвикаємо від звичок Паскаля і т. п.)
Розв'язуємо задачі в стилі Python
swetikccc Дата: Пн, 04.09.2017, 15:29 | Повідомлення № 1
Ветеран спілкування
Повідомлень: 3957
Нагороди: 28
Рейтинг: 370
Задача 1 класична:
Поміняти місцями дві змінні без третьої.
Прохання викладати тільки розв'язки, бажано з коментарями, а також умови задач які можливо специфічно розв'язати Пітоном.


Відредаговано: swetikccc - Пн, 04.09.2017, 15:36
volodschool2 Дата: Пн, 04.09.2017, 15:35 | Повідомлення № 2
Досвідчений учасник
Повідомлень: 1372
Нагороди: 12
Рейтинг: 277
Якщо класика, то так:
a = 7
b = 5
a = a + b
b = a - b
a = a - b

А, якщо чисто по-пітонівськи, то:

a,b = b,a

Та навіть значення трьох можна поміняти :)

a,b,c = c,a,b


Відредаговано: volodschool2 - Пн, 04.09.2017, 15:40
swetikccc Дата: Пн, 04.09.2017, 15:46 | Повідомлення № 3
Ветеран спілкування
Повідомлень: 3957
Нагороди: 28
Рейтинг: 370
Задача 2:
Дізнатися чи належить число заданному проміжку не використовуючи and?

Перша просто чудово, я думаю що змінні тут, це посилання,тому таке можливо,але потрібно перевірити.
volodschool2 Дата: Пн, 04.09.2017, 15:58 | Повідомлення № 4
Досвідчений учасник
Повідомлень: 1372
Нагороди: 12
Рейтинг: 277
a=5
b=9
c=8
if a<c<b :
    print ('Yes')
else:
    print ('No')
volodschool2 Дата: Пн, 04.09.2017, 16:03 | Повідомлення № 5
Досвідчений учасник
Повідомлень: 1372
Нагороди: 12
Рейтинг: 277
Помітив, що при вставці коду з IDLE у форум пропуски не пропадають!
Bandalak Дата: Пн, 04.09.2017, 17:31 | Повідомлення № 6
Лідер форуму
Повідомлень: 5532
Нагороди: 39
Рейтинг: 260
Цитата volodschool2 ()
if a<c<b :

Колись мої учні (від не знання) пробували таке писати на Паскалі, за що отримували на горіхи!
А тут Еврика, спеціально для таких придумали Пітон!

Задача на текстові величини №1.
Петрик П'яточкін на уроці літератури отримав домашнє завдання написати твір про проведення літніх канікул, довжиною до 10000 слів.
Так, як він хлопчик досить ледаченький, то вирішив знайти готовий твір в Інтернеті. Але от незадача, знайшов твір тільки про Івасика, а потрібно про Петрика.
Петрику нав'язався допомогти кращий програміст школи - Вася Пупкін. Він за допомогою мови програмування Пайтон за 10 хвилин написав програму, котра перетворює знайдений в Інтернеті твір на такий, що повністю влаштовує Петрика!
А ви можете таке зробити?
swetikccc Дата: Пн, 04.09.2017, 18:20 | Повідомлення № 7
Ветеран спілкування
Повідомлень: 3957
Нагороди: 28
Рейтинг: 370
Використати відповідний метод, який замінює всі входження одного рядка на інший
my_str = my_str.replace('Івасик', 'Петрик')
Bandalak Дата: Пн, 04.09.2017, 18:57 | Повідомлення № 8
Лідер форуму
Повідомлень: 5532
Нагороди: 39
Рейтинг: 260
Як буде виглядати програма повністю з введенням та виведенням даних?
volodschool2 Дата: Пн, 04.09.2017, 22:12 | Повідомлення № 9
Досвідчений учасник
Повідомлень: 1372
Нагороди: 12
Рейтинг: 277
f = open('text.txt', 'r')
my_string = f.read()
f.close()
my_string=my_string.replace('Івасик','Петрик')
f = open('text.txt', 'w')
f.write(my_string)
f.close()


Відредаговано: volodschool2 - Пн, 04.09.2017, 22:40
Bandalak Дата: Пн, 04.09.2017, 22:41 | Повідомлення № 10
Лідер форуму
Повідомлень: 5532
Нагороди: 39
Рейтинг: 260
О, класно, заодно вивчимо роботу з файлами!
На Паскалі без циклу би не обійшлося!

А як буде виглядати така програма без використання файлів?
volodschool2 Дата: Пн, 04.09.2017, 22:49 | Повідомлення № 11
Досвідчений учасник
Повідомлень: 1372
Нагороди: 12
Рейтинг: 277
f = input('Введіть текст ')
f=f.replace('Івасик','Петрик')
print(f)
Bandalak Дата: Пн, 04.09.2017, 23:05 | Повідомлення № 12
Лідер форуму
Повідомлень: 5532
Нагороди: 39
Рейтинг: 260
А так буде працювати?

Код
f = input('Введіть текст ')
print(f.replace('Івасик','Петрик'))


В програмуванні ціную мінімалізм!
Bandalak Дата: Пн, 04.09.2017, 23:24 | Повідомлення № 13
Лідер форуму
Повідомлень: 5532
Нагороди: 39
Рейтинг: 260
Задача на текстові величини №2.
Петрик П'яточкін, набираючи реферат по українській літературі, замість української розкладки клавіатури випадково включив російську.
Відповідно у нього замість "і" вийшло - "ы", замість "ї" - "ъ", замість апострофа - "ё", та й літера "є" була повернута в іншу сторону.
Порахувати, скільки помилок у тексті спричинила не правильна розкладка клавіатури? Врахувати великі та малі літери. Вивести текст після виправлення помилок.

Приклад:
petro.in
Ынформатика - це наука про ынформацыю, ъъ обробку та перетворення. Це правило вивчити на памёять. Воно э у пыдручнику!

petro.out
8
Інформатика - це наука про інформацію, її обробку та перетворення. Це правило вивчити на пам'ять. Воно є у підручнику!
Пилипчук_О_П Дата: Вт, 05.09.2017, 00:08 | Повідомлення № 14
Ветеран спілкування
Повідомлень: 3870
Нагороди: 30
Рейтинг: 346
Цитата swetikccc ()
Перша просто чудово, я думаю що змінні тут, це посилання,тому таке можливо,але потрібно перевірити.

Це можливо на яких завгодно змінних, безвідносно до того, як це реалізовано на машинному рівні. Проста математика. Чому має не працювати?
Цитата swetikccc ()
Задача 2:
Дізнатися чи належить число заданному проміжку не використовуючи and?

Цитата volodschool2 ()
my_string = f.read()

Справді, таким способом зчитується весь файл в один рядок.
Цитата volodschool2 ()
На Паскалі без циклу би не обійшлося!

Якщо говорити про "дорослий" Паскаль, то є й таке:
Код

    var
      AStr: AnsiString;
      FS: TFileStream;
    begin
      FS := TFileStream.Create('c:\test.txt', fmOpenRead or fmShareDenyWrite);
      try
        if FS.Size > 0 then
        begin
          SetLength(AStr, FS.Size);
          FS.ReadBuffer(Pointer(AStr)^, FS.Size);    
        end;
      finally
        FS.Free;
      end;
    end;

Тут ще й захист від помилок. Циклів, як бачимо, немає.
Детальніше: http://forum.lazarus.freepascal.org/index.php?topic=31387.0
Цитата Bandalak ()
В програмуванні ціную мінімалізм!

Це не завжди добре. Неодноразово чув, що фахівці цінують читабельність коду.
Пилипчук_О_П Дата: Вт, 05.09.2017, 00:37 | Повідомлення № 15
Ветеран спілкування
Повідомлень: 3870
Нагороди: 30
Рейтинг: 346
Цитата Bandalak ()
замість "і" вийшло - "ы", замість "ї" - "ъ", замість апострофа - "ё", та й літера "є" була повернута в іншу сторону.

Як на мене, давати дітям на початковому етапі возитися з Юнікодом - це помилка. Хоча, може я й помиляюсь... На Пайтоні вийшло щось таке:
Код

s=input()
print (s.count('Э')+s.count('э')+s.count('Ы')+s.count('ы')+s.count('Ъ')+s.count('ъ')+s.count('ё'))
s=s.replace('Э','Є')
s=s.replace('э','є')
s=s.replace('Ы','І')
s=s.replace('ы','і')
s=s.replace('Ъ','Ї')
s=s.replace('ъ','ї')
s=s.replace('ё',"'")
print(s)
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Розв'язуємо задачі в стилі Python (Відвикаємо від звичок Паскаля і т. п.)
Сторінка 1 з 512345»
Пошук:


© Форум інформатиків України, 2007-2017.