ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Програмуємо на РНР
         

     

    Інформатика, програмування

    Програмуємо на РНР

    Це не тільки дуже просто - це ще й захоплююче! До такого висновку незмінно приходиш, якщо починаєш знайомитися з основами програмування мовою гіпертекстового препроцесора РНР. Ну ось, ще тільки початок, а вже незрозумілі слова пішли. Це ж треба було придумати таке - гіпертекстовий препроцесор! Так що для поліпшення сприйняття матеріалу заздалегідь давайте домовимося, що будемо застосовувати спрощені і зрозумілі всім терміни, що б було зрозуміло буквально всім. І ще одна неодмінна умовність - робимо все так, як робимо. Є кілька способів відкрити Панель Управління в Windows, є різні способи приготувати одне і те ж блюдо, і є різні способи і методи програмування. З поставленим завданням можна впоратися і так, як описано, і зовсім по-іншому. Але в нашому випадку упор буде робитися на простоту і логічність, а не на швидкість і чистоту коду. Все це прийде трохи пізніше, а поки наша мета - вчитися, вчитися, і ще раз вчитися. В продовження теми, піднятою у статті "РНР для всіх!", ми заглибимося далі в дивовижний світ програмування.

    Цикли в РНР

    Цикли в програмуванні - це повторюються кілька разів операції. Початок (точка відліку) вказується на початку циклу, а тривалість його виконання обмежується яким-небудь умовою. Прикладом циклу може служити копіювання декількох файлів. Алгоритм виконання цього завдання можна описати так: установити лічильник скопійованих файлів в нуль, скопіювати файл, перевірити, закінчилися файли чи ні, якщо ні - збільшити лічильник скопійованих файлів, повернутися до початку циклу (знову скопіювати файл), якщо так - закінчити цикл. Тепер розглянемо, як цикли реалізуються в синтаксисі РНР.

    Сенс скрипта дуже простий. Надаємо змінної $ i значення, що відповідає початку циклу, а змінної $ n - значення кінця циклу. Далі відкриваємо цикл оператором WHILE (), і всередині його дужок описуємо умова, при виконанні якої цикл буде продовжувати свою роботу. У нашому випадку виконання не перерветься, поки $ i

    Дивно, але ці два приклади абсолютно ідентичні в сенсі результату. Але сам скрипт вмістився в один рядок! Різниця - у стилі застосування оператора циклу і в тому, що мінлива циклу виводиться на екран одночасно зі збільшенням. І в цьому -- вся принадність програмування. Іноді буває щось просте зробити дуже важко, а складне - легко. Ніколи не варто зупинятися на вже досягнутому, а пробувати застосовувати інші алгоритми і рішення. Ось Вам ще один варіант рішення. Він заснований на застосуванні конструкції РНР DO ... WHILE. Це теж цикл, але він відрізняється від просто WHILE тим, що значення логічного виразу перевіряється не до (як у випадку з WHILE), а після закінчення роботи операторів, включених в сам цикл. Таким чином, DO ... WHILE гарантовано буде виконаний хоча б один раз, що у випадку з WHILE зовсім не обов'язково. Адже якщо умова це неправда, управління відразу буде передано далі. Для циклів DO .. WHILE існує тільки один вид синтаксису:

    Здавалося б, досить варіантів, але це не все - існує ще кілька варіантів циклу. І, як правило, саме вони і використовуються програмістами. Цикли FOR -- найбільш потужні цикли в PHP. Вони працюють подібно до їх аналогам в мові програмування C. Синтаксис циклу FOR:

    FOR (expr1; expr2; expr3) statement

    Перше вираз (expr1), безумовно, обчислюється (виконується) на початку циклу. У початку кожної ітерації (прохід циклу) обчислюється expr2. Якщо воно рівне TRUE (істина), то цикл продовжується і виконуються вкладений (е) оператор (и). Якщо воно одно FALSE (неправда), то цикл закінчується. В кінці кожної ітерації обчислюється (виконується) expr3. Кожне з цих виразів може бути порожнім. Якщо expr2 пусто, то цикл продовжується нескінченно (PHP за замовчуванням вважає його рівним TRUE, як і в мові С). Це не так марно, як могло б здатися, так як часто потрібно закінчити виконання циклу, використовуючи оператор BREAK в поєднанні з логічним умовою, замість використання логічного вираження в FOR. Якщо всередині циклу (будь-якого) зустрічається цей оператор (BREAK), цикл припиняє виконання ітерації і керування передається наступній за циклом команді. Якщо зустрічається оператор CONTINUE - управління передається на початок наступного найближчого циклу. Для прикладу подивимося, як можна ще реалізувати виведення на екран користувача список чисел. Не забувайте про перехід з HTML в PHP.

    /* приклад 1 */

    for ($ i = 1; $ i 10) (break;) print $ i;)

    /* приклад 3 */

    $ i = 1; for (;;)

    (if ($ i> 10) (break;) print $ i; $ i + +;)

    /* приклад 4 */

    for ($ i = 1; $ i

    Тепер розглянемо, як працює цей скрипт. Спочатку нам потрібно визначити два масиви, в яких будуть зберігатися відповідно російська назва місяця і російське назва дня тижня. Так як місяць не може бути нульовим, нам потрібно подбати про введення елемента масиву з нульовим індексом. Якщо індекс масиву не вказаний, він приймається рівним внутрішньому вказівником. Якщо масив зруйнований, а ще не визначено, внутрішній покажчик указує на перший елемент (що має індекс нуль). Введення нового елемента масиву переміщує внутрішній вказівник на одиницю вгору, і, таким чином, забезпечується подальший введення значення масиву в комірку масиву, що має індекс на одиницю більший, ніж попередній. У принципі, можна забезпечити введення даних в масив різними способами. Але вказаний тут -- самий простий і примітивний. Ми просто надаємо по черзі потрібні нам дані елементів масиву і, таким чином, заповнюємо його. Точно така ж історія спостерігається і з другим масивом. Тільки тут вже індекс потрібних осередків масиву вказується явно, і внутрішній покажчик встановлюється на той індекс, який вказаний, а після введення значення пересувається вгору на одиницю. Різниця між цими двома методами в тому, що якщо масив вже було визначено раніше і індекс при введенні не вказаний, заповниться осередок масиву, на яку вказує внутрішній покажчик. А він же може знаходитися і в кінці! А якщо індекс вказаний явно, внутрішній покажчик встановлюється на його значення і запис відбувається в явно зазначену клітинку. Власне, частіше масиви бувають набагато довше наведених у прикладі, і зручніше скористатися спеціальною функцією, яка дозволяє вважати зазначений у ній файл і ввести все, що є в цьому файлі, в масив. Причому роздільником вважається переклад рядка, що дуже зручно. Синтаксис цієї функції - $ ім'я масиву = file ( "ім'я файлу");. Далі формується масив з вказаним ім'ям і значеннями, відповідними рядках файлу.

    Коли масиви визначені, нам потрібно вважати номер місяця. Він зчитується з ведучим нулем, якщо номер місяця менше десяти, і тому нам потрібно подбати про його відсіканні. Тут можна застосувати теж різні алгоритми і методи, але ми скористаємося лобовим рішенням - просто порівняємо отримане рішення з низкою заздалегідь відомих варіантів і змінимо номер місяця на правильний без нуля. Рішення грубе, зате зрозуміле і вже знайоме нам. Хоча так робити не правильно - Є більш витончені методи, наприклад, перевірити отримане значення на провідний нуль, і якщо перевірка є істина (самий перший символ у рядку - нуль), видалити перший символ.

    Далі по ходу скрипта ми зчитуємо день тижня і число. З числом робити нічого не потрібно, тому що дата буде зрозуміла всім, а ось день тижня і місяць повинні піддатися обробці. Витягуємо з введеного нами раніше масиву день тижні. Номер дня тижня вказує на клітинку нашого масиву, де зберігається потрібне російське ім'я, і таким чином ми в будь-якому випадку отримаємо правильне значення. Змінюється номер дня тижня, змінюється номер (індекс) комірки, з якої зчитується значення. Причому тут, на відміну від масиву з іменем місяця, нулю відповідає Неділя, що ми і врахували під час введення масиву днів тижня. Таку саму операцію проводимо і для місяця. Його номер вказує на комірку масиву, де зберігається правильне ім'я місяця українською мовою. А далі - виводимо результат на екран у довільній формі.

    Висновок

    Отже, ми познайомилися з дуже важливими в будь-якій мові програмування принципами організації циклів і масивів, а також дізналися, як застосовувати на практиці можливість відправки пошти і зчитування дати. Не сумніваюся, що ви зможете придумати ще багато прикладів для застосування цих речей. Не соромтеся експериментувати і пробувати різні варіанти. Саме так і вивчаються мови програмування -- на прикладах. Використовуйте для пошуку нових рішень і скриптів Інтернет, підпишіться на розсилання по РНР для отримання нової інформації. Якщо не всі зрозуміло - сміливо ставте питання, я постараюся в міру сил і знань відповісти на них. І ніколи не зупиняйтеся на досягнутому, тому що завжди існує те, що ми ще поки не знаємо, але ж так хочеться ...

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.i2n.ru

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status