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

     

     

     

     

     

         
     
    Звіт по лабораторній роботі № 2
         

     

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

    МОСКОВСЬКИЙ Інститут радіотехніки,

    ЕЛЕКТРОНІКИ І АВТОМАТИКИ

    (технічний університет)

    Звіт по лабораторній роботі № 2

    Програмування на мовах В/У

    Студент:

    Група:

    Москва 2003

    ЗМІСТ

    1 ЗАВДАННЯ 3

    2 БЛОК-СХЕМА ПРОГРАМИ 3

    3 ТЕКСТ ПРОГРАМИ 5

    4 ОПИС РОБОТИ ПРОГРАМИ 6

    5 КЕРІВНИЦТВО ОПЕРАТОРА 10

    1 ЗАВДАННЯ

    Многочлен з цілими коефіцієнтами представити у вигляді списку.
    Програма повинна перевіряти на рівність багаточлени P і Q.

    2 БЛОК-СХЕМА ПРОГРАМИ

    так

    немає

    немає

    так

    так

    немає

    немає

    так

    Ні

    Так

    Ні Так

    Ні

    Так

    Ні Так

    Ні

    Так

    Так Ні

    3 ТЕКСТ ПРОГРАМИ

    Program Project1;

    ($ APPTYPE CONSOLE)

    Uses SysUtils; type spisok = ^ s; s = record a, n: Integer; p: spisok; end; var k, m: word; b: boolean; P, Q, FstP, LP, FstQ, LQ: spisok;

    BEGIN

    (Формування списків P і Q)

    Write ( 'Kol. Elementov P:>'); ReadLn (k); < p> FOR m: = 1 to k do BEGIN

    New (P);

    Write ( 'Koef.:>'); ReadLn (P ^. a); Write ( 'Step.:>'); ReadLn (P ^. n);

    P ^. p: = nil;

    IF m = 1 THEN begin FstP: = P; LP : = P; end

    ELSE begin LP ^. p: = P; LP: = P; end;

    END;

    Write ( 'Kol. Elementov Q:> '); ReadLn (k);

    FOR m: = 1 to k do BEGIN

    New (Q);

    Write (' Koef.:> '); ReadLn (Q ^. a);

    Write (' Step.:> '); ReadLn (Q ^. n);

    Q ^. p: = nil;

    IF m = 1 THEN begin FstQ: = Q; LQ: = Q; end

    ELSE begin LQ ^. p: = Q; LQ: = Q ; end;

    END;

    (ПРОГРАМА)

    P: = FstP; Q: = FstQ;

    REPEAT

    If ((P ^. pnil) and (Q ^. p = nil)) or ((P ^. p = nil) and (Q ^. pnil)) Then

    Begin Write ( 'P Q'); b: = true; End;

    If (P ^. p = nil) and (Q ^. p = nil) Then Begin

    If ( P ^. a = Q ^. a) and (P ^. n = Q ^. n) Then Begin Write ( 'P = Q'); b: = true; End

    Else Begin Write ( 'P Q'); b: = true;
    End;

    End;

    If (P ^. Pnil) and (Q ^. Pnil) Then BEGIN

    If (P ^. A = Q ^ . a) and (P ^. n = Q ^. n) Then Begin P: = P ^. p; Q: = Q ^. p; End

    Else Begin Write ( 'P Q') ; b: = true;
    End;

    END;

    UNTIL b = true;

    ReadLn;

    END.
    4 ОПИС РОБОТИ ПРОГРАМИ

    ТАБЛИЦЯ ТИПІВ, що використовується програмою
    | Назва | Тип | Призначення |
    | типу | | |
    | spisok | | Динамічна мінлива зі структурою s |
    | s | record | Запис, що містить змінні типу integer (а, n) |
    | | | І посилання (p). а використовується для запису значення |
    | | | Коефіцієнта многочлена, а n для ступеня при |
    | | | Якій стоїть цей коефіцієнт |

    ТАБЛИЦЯ ЗМІННИХ, що використовується програмою
    | Назва | Тип | Призначення |
    | m | Word | Лічильник циклів |
    | k | Word | Кількість елементів у многочленів |
    | b | boolean | Ознака знаходження результату порівняння списків |
    | | | P і Q |
    | P | spisok | Покажчик, що містить адресу довільного |
    | | | Елемента списку Р |
    | Q | spisok | Покажчик, що містить адресу довільного |
    | | | Елемента списку Q |
    | FstP | spisok | Покажчик, що містить адресу першого елемента |
    | | | Списку Р |
    | FstQ | spisok | Покажчик, що містить адресу першого елемента |
    | | | Списку Q |
    | LP | spisok | Покажчик, що містить адресу останнього елемента |
    | | | Списку Р |
    | LQ | spisok | Покажчик, що містить адресу останнього елемента |
    | | | Списку Q |


    Спочатку роботи програма виводить на екран рядок "Kol. Elementov P:>",після чого необхідно ввести значення кількості елементів, які будутьзаписуватися до списку P. Потім відбувається зчитування цього значення ізмінної k присвоюється це значення.

    Далі організовується цикл для введення коефіцієнтів (а) і ступенів кожногоокремого елемента (n) списку Р, починаючи з елемента має найбільшуступінь і закінчуючи коефіцієнтом елемента має найменший ступінь.
    Цикл організується операторами FOR і TO. Починаючи з m, що приймає значення
    1, до значення змінної k (кількість елементів у списку) програмавиконує наступне:

    - За допомогою процедури New резервує місце в пам'яті ЕОМ піддинамічну змінну, адреса якої містить покажчик P.

    - Виводить на екран рядок, в якому написано "Koef.:>". Після виводурядка програма чекає введення значення коефіцієнта елементу. Після введеннязначення воно присвоюється в полі а динамічної змінної структури s, наяку посилається вказівник Р.

    - Виводить на екран рядок, в якому написано "Step.:>". Після виводурядка програма чекає введення значення ступеня елементу. Після введення значеннявоно присвоюється в полі n динамічної змінної структури s, на якупосилається вказівник Р. У полі p записується значення nil.

    - Перевіряється умова: якщо m дорівнює 1, що відповідає першійелементу списку, тоді програма присвоює значення покажчика Рвказівниками FstР (показник, що містить адресу першого елементу списку) і Lр
    (показник, що містить адресу останнього елемента списку). Тобто покажчик
    FstL буде містити адресу першого елемента списку. А інакше якщо m не дорівнює
    1, що відповідає другому і наступним елементам списку, програмаприсвоює посиланням останнього елемента списку, на який вказуєпокажчик Lр значення покажчика Р, і вказівником Lр привласнює адресупокажчика Р. Елемент, на який посилається вказівник Р стає останнімв списку.

    На цьому цикл оператора FOR завершується. Таким чином відбуваєтьсязаповнення списку Р, який містить значення коефіцієнтів і ступеніввсіх елементів многочлена виду.

    Після цього програма виводить на екран рядок "Kol. Elementov Q:>",після чого необхідно ввести значення кількості елементів, які будутьзаписуватися до списку Q. Потім відбувається зчитування цього значення ізмінної k присвоюється це значення.

    Далі організовується цикл аналогічний циклу запису елементів списку Р.
    Замість Р тут використовується покажчик Q, замість FstP покажчик FstQ,який містить адресу першого елемента списку Q, а замість LP використовується
    LQ, який містить адресу останнього елемента списку Q. Таким чиномформується два списки Р і Q.

    вказівниками Р і Q присвоюється адреса першого елемента списків Р і Q,які містяться відповідно в покажчиках FstР і FstQ. Потіморганізовується цикл за допомогою операторів REPEAT і UNTIL, який виконуєтьсядо тих пір поки мінлива b (ознака знаходження результату порівняннясписків P і Q) не стане рівним true.

    1) Перевіряється умова за допомогою оператора IF. Якщо значення поля р.динамічної змінної структури s, на яку вказує покажчик Р, недорівнює значенню nil і це ж полі динамічної змінної структури s, наяку вказує покажчик Q, дорівнює значенню nil АБО навпаки значенняполя р. динамічної змінної структури s, на яку вказує покажчик
    Р, так само значенням nil і це ж полі динамічної змінної структури s, наяку вказує покажчик Q, не дорівнює значенню nil, то тоді виконуєтьсянаступне. На екран виводиться рядок "PQ" і змінної b присвоюєтьсязначення true. Це відповідає тому, що один із списків містить меншукількість елементів, ніж в іншому. Відповідно багаточлени не можуть бутирівні один одному.

    2) Перевіряється умова за допомогою оператора IF. Якщо значення поля р.динамічної змінної структури s, на яку вказує покажчик Р,дорівнює значенню nil і це ж полі динамічної змінної структури s, наяку вказує покажчик Q, дорівнює значенню nil, що відповідаєадресами останніх елементів двох списків, то тоді перевіряється рівністькоефіцієнтів і ступенів останніх елементів списків Р і Q. Якщо значенняполів а динамічних змінних структури s, на які вказують покажчики
    Р і Q, рівні один одному, що відповідає тому що всі попередні елементицих списків були рівні і останні елементи теж рівні. Тоді на екранвидається рядок "P = Q" і змінної b привласнюється значення true. А інакшена екран виводиться рядок "PQ" і змінної b присвоюється значенняtrue. Це відповідає тому, що всі елементи крім останніх у спискахрівні.

    3) Перевіряється умова за допомогою оператора IF. Якщо значення поля р.динамічної змінної структури s, на яку вказує покажчик Р, недорівнює значенню nil і це ж полі динамічної змінної структури s, наяку вказує покажчик Q, не дорівнює значенню nil, що відповідаєадресами не останніх елементів двох списків, то тоді перевіряється рівністькоефіцієнтів і ступенів останніх елементів списків Р і Q. Якщо вони рівні,то тоді вказівниками присвоюється значення наступних елементів списку, т.тобто значення полів р динамічної змінної структури s, на яку вони вданий момент посилаються. І програма буде порівнювати в наступному циклінаступні елементи списку. Інакше на екран виводиться рядок "PQ" ізмінної b привласнюється значення true. Це відповідає тому, що будь -то елемент з одного списку відрізняється від відповідного йому елементаіншого списку. Відповідно багаточлени не можуть бути рівні один одному.

    У результаті цього циклу визначається рівність списків Р і Q.

    Далі програма чекає натискання на клавішу "Enter". Програма завершуєроботу.

    5 КЕРІВНИЦТВО ОПЕРАТОРА

    Многочлен з цілими коефіцієнтами представити у вигляді списку.
    Програма повинна перевіряти на рівність багаточлени P і Q.

    Для роботи програми необхідно задати два многочлена P і Q.

    Для цього програма видає на екран рядок:
    | Kol. Elementov Р:> |

    Після цього необхідно ввести кількість елементів многочлена Р інатиснути клавішу "Enter". Програма запам'ятовує це значення.

    Потім програма буде питати у оператора коефіцієнт при х іступінь х кожного елемента многочлена починаючи з першого елементу, що маємаксимальний ступінь, і закінчуючи елементом з найменшою мірою.

    Для цього програма видає на екран рядок:
    | Koef. :> |

    Після цього рядка необхідно ввести значення коефіцієнта елементамногочлена і натиснути клавішу "Enter".

    Далі програма виведе на екран наступний рядок:
    | Step. :> |

    Після цього рядка необхідно ввести значення ступеня того ж елементумногочлена і натиснути клавішу "Enter".

    Далі програма буде запитувати ввести коефіцієнт і ступіньнаступного елемента, якщо їх більше одного і т. д до.

    Все що вводяться значення програма запам'ятовує і формує список,що містить всі значення коефіцієнтів і ступенів х, при яких вони стоять.

    Таким чином формується список Р.

    Потім програма видає на екран рядок:
    | Kol. Elementov Q:> |

    Після цього необхідно ввести кількість елементів многочлена Q інатиснути клавішу "Enter". Програма запам'ятовує це значення.

    Потім програма буде питати у оператора коефіцієнт при х іступінь х кожного елемента многочлена починаючи з першого елементу, що маємаксимальний ступінь, і закінчуючи елементом з найменшою мірою.

    Для цього програма видає на екран рядок:
    | Koef. :> |

    Після цього рядка необхідно ввести значення коефіцієнта елементамногочлена і натиснути клавішу "Enter".

    Далі програма виведе на екран наступний рядок:
    | Step. :> |

    Після цього рядка необхідно ввести значення ступеня того ж елементумногочлена і натиснути клавішу "Enter".

    Далі програма буде запитувати ввести коефіцієнт і ступіньнаступного елемента, якщо їх більше одного і т. д до.

    Все що вводяться значення програма запам'ятовує і формує список,що містить всі значення коефіцієнтів і ступенів х, при яких вони стоять.

    Таким чином формується список Q.

    Після того, як два многочлена представлені у вигляді списку починаєтьсяосновна частина програми.

    Якщо коефіцієнт або ступінь хоча б одного елемента многочленавідрізняється від коефіцієнта або ступеня відповідного елемента іншоїмногочлена, то ці два многочлена ніяк не можуть бути рівні один одному.
    Програма починає порівнювати коефіцієнти і ступеня кожного з елементівдвох списків між собою, починаючи з першого. Якщо програма знаходить хоча бодин елемент многочлена відрізняється від відповідного елемента другумногочлена, то відповідно на екран буде виведений рядок:
    | PQ |

    Якщо ж програма не знаходить жодного елементу многочленащо відрізняється від відповідного елемента другого многочлена, товідповідно на екран буде виведений рядок:
    | P = Q |

    Далі програма чекає натискання на клавішу "Enter". Після цього програмазавершує роботу.

    ПРИКЛАД

    1) Якщо ви хочете задати многочлен Р рівний 4х2 2 х 1, то необхідно:

    Коли на екран буде виведений рядок:
    | Kol. Elementov Р:> |

    Необхідно ввести значення 3 і натиснути клавішу "Enter".

    Далі буде виведений рядок:
    | Koef. :> |

    Після цього рядка необхідно ввести значення 4 і натиснути клавішу
    "Enter".

    Далі програма виведе на екран наступний рядок:
    | Step. :> |

    Після цього рядка необхідно ввести значення 2 і натиснути клавішу
    "Enter".

    Далі буде виведена знову рядок, тому що число елементів у многочленівдорівнює 3:
    | Koef. :> |

    Після цього рядка необхідно ввести значення 2 і натиснути клавішу
    "Enter".

    Далі програма виведе на екран наступний рядок:
    | Step. :> |

    Після цього рядка необхідно ввести значення 1 і натиснути клавішу
    "Enter".

    Далі буде виведено третій і останній раз рядок:
    | Koef. :> |

    Після цього рядка необхідно ввести значення 1 і натиснути клавішу
    "Enter".

    Далі програма виведе на екран наступний рядок:
    | Step. :> |

    Після цього рядка необхідно ввести значення 0 та натиснути клавішу
    "Enter".

    Таким чином ви поставите многочлен 4х2 2 х 1.

    Аналогічно задається і многочлен Q. Якщо ви задали многочлен Q рівний
    3х2 2 х 1, то після обчислень програма видасть на екран рядок про те, щоці два многочлена не рівні:
    | PQ |

    Далі необхідно натиснути клавішу "Enter" і програма завершує свою роботу.

    2) Якщо ви задали многочлен Р рівний: 4х2 2 х 1. І многочлен Q рівний:
    4х2 2 х 1, то після обчислень програма видасть на екран рядок про те, щоці два многочлена рівні один одному:
    | P = Q |

    Далі необхідно натиснути клавішу "Enter" і програма завершує свою роботу.
    -----------------------

    m: = m +1

    m = k

    m: = k

    LP ^. p: = P;

    LP: = P;

    m = 1

    New (Q);

    Write ( 'Koef.:>');

    ReadLn (Q ^. a);

    Write (' Step. :>');

    ReadLn (Q ^. n);

    Q ^. p: = nil;

    Write ( 'Kol. Elementov Q: >');

    ReadLn (k);

    m: = 1

    FstP: = P;

    LP: = P ;

    m = 1

    LQ ^. p: = Q;

    LQ: = Q;

    P: = FstP;

    Q: = FstQ;

    FstQ: = Q;

    LQ: = Q;

    m: = m +1

    New (P);

    Write ( 'Koef.:>');

    ReadLn (P ^. a);

    Write ( 'Step.:>');

    ReadLn (P ^. n);

    P ^. p: = nil;

    m = k

    Початок програми

    Write ( 'Kol. Elementov P:>');

    ReadLn (k);

    (P ^ . pnil) and

    (Q ^. pnil)

    Write ( 'P Q'); b: = true;

    (P ^. a = Q ^. a) and (P ^. n = Q ^. n)

    Write ( 'P = Q'); b: = true;

    ReadLn

    b = true

    Write ( 'P Q'); b: = true;

    (P ^. a = Q ^. a) and < p> (P ^. n = Q ^. n)

    P: = P ^. p; Q: = Q ^. p;

    (P ^. p = nil ) and

    (Q ^. p = nil)

    Write ( 'P Q'); b: = true;

    ((P ^. pnil ) and (Q ^. p = nil)) or ((P ^. p = nil) and (Q ^. pnil))

    Вихід

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

     

     

     

     

     

     

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