Учебно-методический комплекс по дисциплине «б в. 7»

Загрузка...





НазваниеУчебно-методический комплекс по дисциплине «б в. 7»
страница6/11
Дата публикации04.12.2014
Размер1.36 Mb.
ТипУчебно-методический комплекс
top-bal.ru > Информатика > Учебно-методический комплекс
1   2   3   4   5   6   7   8   9   10   11

Коллоквиум 2

  1. Эффективность алгоритмов.

  2. Классификация алгоритмов по их эффективности

  3. Понятие рекурсии. Преимущества и недостатки использования рекурсии. Примеры рекурсивных алгоритмов.

  4. Поиск данных. Алгоритм линейного поиска и оценка его эффективности

  5. Алгоритм бинарного поиска и оценка его эффективности

  6. Алгоритм  сортировки выбором и оценка его эффективности.

  7. Алгоритмы сортировки обменом и оценка его эффективности.

  8. Алгоритм сортировки вставками и оценка его эффективности.

  9. Алгоритм быстрой сортировки и оценка его эффективности.

  10. Рандомизированныеалгоритмы. Аппаратные и программные генераторы случайных чисел. Линейныеконгруэнтные ГСЧ.

  11. Применение ГСЧ. Метод Монте-Карло.


9.5. Подготовка к выполнению творческого проекта
Для решения поставленной задачи студенту необходимо предварительно ознакомиться с литературой, посвященной теме задания. При этом следует обратить внимание на средства, используемые для решения аналогичных задач или для решения каких-либо ключевых моментов задачи. Этап работы с литературой должен закончиться обзором, в котором собраны полученные сведения из литературы, дан их анализ с точки зрения приложения к поставленной задаче.

После ознакомления с литературой студент должен оценить возможности языка программирования и вычислительной техники, на которой предлагается реализовать решение. Результатом этой работы должна быть точная формулировка задачи со всеми ограничениями и требованиями.

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

При разработке алгоритма необходимо предусмотреть средства проверки и тестирования программы, удобство работы пользователя, возможные модификации.

При написании программы не следует забывать о хорошем стиле программирования, о таких понятиях, как читабельность, эффективность, надежность. Необходимо искать наиболее простые и естественные приемы и методы решения.

В программе, кроме решения непосредственно задачи, студент должен предусмотреть вывод справки о программе и информации о разработчике с указанием ФИО, группы и даты разработки.

На диске вместе с программой должны быть представлены файлы, подготовленные для проверки ее работоспособности.

Темы творческих проектов

  1. Сравнительный анализ алгоритмов поиска данных.

  2. Сравнительный анализ алгоритмов сортировки.

  3. Визуализация алгоритма линейного поиска данных

  4. Визуализация алгоритма бинарного поиска данных

  5. Визуализация алгоритма сортировки выбором

  6. Визуализация алгоритма сортировки обменом

  7. Визуализация алгоритма сортировки вставками

  8. Визуализация алгоритма быстрой сортировки

  9. Вычисление площадей сложных фигур методом Монте-Карло

  10. Вычисление объемов сложных фигур методом Монте-Карло

  11. Визуализация метода Монте-Карло

  12. Программа для перевода чисел из одной системы счисления в другую.

  13. Графы.

  14. Визуализация поиска в глубину в графе.

  15. Визуализация поиска в ширину в графе.

  16. Визуализация алгоритма Дейкстры.


XI. Глоссарий
^ ПЕРЕЧЕНЬ ОБЩЕОБРАЗОВАТЕЛЬНЫХ ПОНЯТИЙ

Знание понимание, сохранение в памяти, умение анализировать и воспроизводить основные факты научной картины мира, формулировать вытекающие из них теоретические обобщения (правила, законы и т.п.).

Умениевладение способами, приемами, тактикой применения усвоенных знаний на практике.

Навыкконкретное умение, доведенное до высокой степени автоматизма посредством многократного применения в соответствующих практических ситуациях.

Компетенция способность успешно действовать на основе практического опыта, умений и знаний при решении профессиональных задач.

^ Результаты обучения – набор обретённых компетенций, позволяющих достигать успехов в профессиональной деятельности.

ФГОС ВПО Федеральный государственный образовательный стандарт высшего профессионального образования – документ, определяющий совокупность обязательных минимально допустимых требований к организации образовательного процесса и его результатам. Последние – набор обретённых компетенций – должны позволять выпускнику вуза успешно осуществлять свою профессиональную деятельность.

ООП основная образовательная программа – комплект нормативных документов, определяющих цели, прогнозируемые результаты, содержание, условия и технологии реализации процесса обучения, воспитания и, как следствие, качества подготовки обучающихся.
^ УКАЗАТЕЛЬ СПЕЦИАЛЬНЫХ ТЕРМИНОВ

Алгоритм – порядок действий, которые необходимо выполнить для решения определенной задачи.

Ассемблер (Assembler) – язык программирования низкого уровня, инструкции которого соответствуют инструкциям машинного кода. Также, ассемблером называют программу – транслятор с языка программирования низкого уровня в машинный код.Блок-схема – графическая нотация для описания алгоритмов. Используется программистами в процессе разработки и анализа логики работы программных компонентов.

^ Объектно-ориентированное программирование (ООП) –парадигма программирования. Суть объектно-ориентированного программирования в представлении обрабатываемой информации в виде объектов – экземпляров классов. Класс – это новый (по отношению к процедурному программированию) тип данных, который объединяет в себе и структуры данных и параметризованные процедуры.

^ Прикладное программирование – процесс разработки программного обеспечения, предназначенного для решения прикладных задач в определенной сфере деятельности. Такое программное обеспечение называют прикладным, и оно характеризуется тем, что не использует вычислительные ресурсы аппаратного обеспечения напрямую, а делает это посредством операционной системы.

Delphi – объектно-ориентированный язык программирования, созданный на основе языка программирования Pascal и среда разработки программных продуктов компании Borland.

^ Microsoft Visual Studio – интегрированная среда разработки программных продуктов компании Microsoft, которая, в том числе, поддерживает языки программирования для платформы Microsoft .NET Framework.

Pascal – один из наиболее известных языков программирования высокого уровня, который широко используется в целях обучения программированию. Объектный Паскаль (Object Pascal) является объектно-ориентированным расширением Паскаля, на основе которого создан язык программирования Delphi.

Программирование-.англ.Programming - процесс подготовки задач для их решения с помощью компьютера; итерационный процесс составления программ.

^ Автоматизированное программирование- совокупность методов и инструментальных средств для проектирования и сопровождения прикладных программ.

Инструментальное программное обеспечение син.Инструментальные программные средства англ.Software tools - программное обеспечение, используемое в ходе разработки, корректировки или развития других программ: редакторы, компиляторы, отладчики, вспомогательные системные программы, графические пакеты и др.

^ Правила хорошего стиля - результат соглашения между программистами. Считается, что в соответствии с правилами хорошего стиля программный код должен поддерживать:
- очевидную логику;
- естественные выражения;
- осмысленные имена;
- аккуратное форматирование;
- развернутые комментарии;
- отсутствие хитрых трюков и необычных конструкций.

Программист (англ.Programmer) - специалист, занимающийся разработкой и проверкой программ. Различают системных и прикладных программистов.

^ Стиль программирования - набор приемов или методов программирования, которые используют программисты, чтобы получить правильные, эффективные, удобные для применения и легкочитаемые программы.

^ Теоретическое программирование - раздел информатики, изучающий описание процессов обработки данных.

Технология программирования - дисциплина, изучающая технологические процессы программирования и порядок их прохождения.

^ Язык программирования, син.Алгоритмический язык (англ.Programming language; Algorithmic language) - искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора.

XII. Тестовые задания




  1. Структура данных представляет собой

  1. набор правил и ограничений, определяющих связи между отдельными элементами и группами данных

  2. набор правил и ограничений, определяющих связи между отдельными элементами данных

  3. набор правил и ограничений, определяющих связи между отдельными группами данных

  4. некоторую иерархию данных




  1. Линейный список, в котором доступен только последний элемент, называется

  1. стеком

  2. очередью

  3. деком

  4. массивом

  5. кольцом




  1. Структура данных работа с элементами которой организована по принципу FIFO (первый пришел - первый ушел) это –

а) Стек

б) Дек

в) Очередь

г) Список


  1. Линейный последовательный список, в котором включение исключение элементов возможно с обоих концов, называется

  1. стеком

  2. очередью

  3. деком

  4. кольцевой очередью




  1. В чём особенности очереди ?

  1. открыта с обеих сторон ;

  2. открыта с одной стороны на вставку и удаление;

  3. доступен любой элемент.



  1. В чём сосбенности стека ?

  1. открыт с обеих сторон на вставку и удаление;

  2. доступен любой элемент;

  3. открыт с одной стороны на вставку и удаление.



  1. Какую дисциплину обслуживания принято называть FIFO ?

a) стек;

b) очередь;

c) дек.



  1. Какая операция читает верхний элемент стека без удаления ?

a) pop;

b) push;

b) stackpop.


9. Каково правило выборки элемента из стека ?
a)первый элемент;
b)последний элемент;
c)любой элемент.
10. Как освободить память от удаленного из списка элемента ?
a) p=getnode;
b) ptr(p)=nil;
c) freenode(p);
d) p=lst.


11.Как создать новый элемент списка с информационным полем D ?
a)p=getnode;
b)p=getnode; info(p)=D;
c)
p=getnode; ptr(D)=lst.
12. Как создать пустой элемент с указателем p?
a) p=getnode;
b) info(p);
c) freenode(p);
d) ptr(p)=lst.
13Сколько указателей используется в односвязных списках?
a) 1
b) 2;
c) сколько угодно.
14.В чём отличительная особенность динамических объектов ?
a)порождаются непосредственно перед выполнением программы;
b)возникают уже в процессе выполнения программы;
c)задаются в процессе выполнения программы.

15. При удалении элемента из кольцевого списка…
a)список разрывается;
b)в списке образуется дыра;
c)список становится короче на один элемент .


16.Для чего используется указатель в кольцевых списках ?
a)для ссылки на следующий элемент;
b)для запоминания номера сегмента расположения элемента;
c)для ссылки на предыдущий элемент ;
d)для расположения элемента в списке памяти.
17. Чем отличается кольцевой список от линейного ?
a)в кольцевом списке последний элемент является одновременно и первым;
b)в кольцевом списке указатель последнего элемента пустой;
c)в кольцевых списках последнего элемента нет ;
d)в кольцевом списке указатель последнего элемента не пустой.
18. Сколько указателей используется в односвязном кольцевом списке ?
a)1(верный);
b)2;
c)сколько угодно.
19. В каких направлениях можно перемещаться в кольцевом двунаправленном списке ?
a)в обоих (верный);
b) влево;
c) вправо.

20. С помощью какой структуры данных наиболее рационально реализовать очередь ?
a)стек;
b)список (верный);
c)дек.

21. В памяти ЭВМ бинарное дерево удобно представлять в виде:
a) связанных линейных списков;
b)массивов;
c)связанных нелинейных списков (верный).


22. Элемент t, на который нет ссылок:
a)корнем (верный);
b)промежуточным;
c)терминальным (лист).


23. Дерево называется полным бинарным, если степень исходов вершин равна:
a)2 или 0 (верный);
b)2;
c)М или 0;
d)M.

24.Даны три условия окончания просеивания при сортировке прямым включением. Найдите среди них лишнее.
a)найден элемент a(i) с ключом, меньшим чем ключ у x;
b)найден элемент a(i) с ключом, большим чем ключ у x (верный);
c)достигнут левый конец готовой последовательности.


25. Какой из критериев эффективности сортировки определяется формулой M=0,01*n*n+10*n ?
a)число сравнений (верный);
b)время, затраченное на написание программы;
c)количество перемещений;
d)время, затраченное на сортировку.

26. Как называется сортировка, происходящая в оперативной памяти?
a)сортировка таблицы адресов;
b)полная сортировка;
c)сортировка прямым включением;
d)внутренняя сортировка (верный);
внешняя сортировка.

27. Как можно сократить затраты машинного времени при сортировке большого объёма данных ?
a)производить сортировку в таблице адресов ключей (верный);
b)производить сортировку на более мощном компьютере;
c)разбить данные на более мелкие порции и сортировать их.

28. Существуют следующие методы сортировки. Найдите ошибку.
a)строгие;
b)улудшенные;
c)динамические (верный).

29. Метод сортировки называется устойчивым, если в процессе сортировки…
a)относительное расположенние элементов безразлично;
b)относительное расположение элементов с равными ключами не меняется (верный);
c)относительное расположение элементов с равными ключами изменяется;
d)относительное расположение элементов не определено.


30. Улучшенные методы имеют значительное преимущество:
a)при большом количестве сортируемых элементов (верный);
b)когда массив обратно упорядочен;
c)при малых количествах сортируемых элементов;
d)во всех случаях.

31. Что из перечисленных ниже понятий является одним из типов сортировки ?
a)внутренняя сортировка (верный);
b)сортировка по убыванию;
c)сортировка данных;
d)сортировка по возрастанию.

32. Сколько сравнений требует улучшенный алгоритм сортировки ?
a)n*log(n) (верный);
b)en;
c)n*n/4.
33. Сколько сравнений и пeрестановок элементов требуется в пузырьковой сортировке ?
a)n*lon(n);
b)(n*n)/4 (верный);
c)(n*n-n)/2.
34. Сколько дополнительных переменных нужно в пузырьковой сортировке помимо массива, содержащего элементы ?
a)0 (не нужно);
b)всего 1 элемент (верный);
c)n переменных (ровно столько, сколько элементов в массиве).
35. Как рассортировать массив быстрее, пользуясь пузырьковым методом?
a)одинаково (верный);
b)по возрачстанию элементов;
c)по убыванию элементов.
36. В чём заключается идея метода QuickSort ?
a)выбор 1,2,…n – го элемента для сравнения с остальными;
b)разделение ключей по отношению к выбранному (верный);
c)обмен местами между соседними элементами.
37. Массив сортируется “пузырьковым” методом. За сколько проходов по массиву самый “лёгкий” элемент в массиве окажется вверху ?
a)за 1 проход (верный);
b)за n-1 проходов;
c)за n проходов, где n – число элементов массива.

38. При обходе дерева слева направо получаем последовательность…
a)отсортированную по убыванию;
b)неотсортированную (верный);
c)отсортированную по возрастанию.
39. При обходе дерева слева направо его элемент заносится в массив…
a)при втором заходе в элемент (верный);
b)при первом заходе в элемент;
c)при третьем заходе в элемент.
40. Где эффективен линейный поиск ?
a)в списке;
b)в массиве;
c)в массиве и в списке (верный).
41. Какой поиск эффективнее ?
a)линейный;
b)бинарный (верный);
c)без разницы.
42. В чём суть бинарного поиска ?
a)нахожденние элемента массива x путём деления массива пополам каждый раз, пока элемент не найден (верный);
b)нахождение элемента x путём обхода массива;
c)нахождение элемента массива х путём деления массива.
43. Как расположены элементы в массиве бинарного поиска ?
a)по возрастанию (верный);
b)хаотично;
c)по убыванию.
44. В чём суть линейного поиска ?
производится последовательный просмотр от начала до конца и обратно через 2 элемента;
производится последовательный просмотр элементов от середины таблицы;
производится последовательный просмотр каждого элемента (верный).

45. Где наиболее эффективен метод транспозиций ?
в массивах и в списках (верный);
только в массивах;
только в списках.
46. В чём суть метода транспозиции ?
перестановка местами соседних элементов;
нахождение одинаковых элементов;
перестановка найденного элемента на одну позицию в сторону начала списка (верный).
47. Что такое уникальный ключ ?
если разность значений двух данных равна ключу;
если сумма значений двух данных равна ключу;
если  в таблице есть только одно данное с таким ключом (верный).
48. В чём состоит назначение поиска ?
среди массива данных найти те данные, которые соответствуют заданному аргументу (верный);
определить, что данных  в массиве нет;
с помощью данных найти аргумент.

  1. Элемент дерева, который не ссылается на другие, называется

  1. корнем

  2. листом

  3. узлом

  4. промежуточным

  1. Элемент дерева, на который не ссылаются другие, называется

  1. корнем

  2. листом

  3. узлом

  4. промежуточным

  1. Элемент дерева, который имеет предка и потомков, называется

  1. корнем

  2. листом

  3. узлом

  4. промежуточным

  1. Высотой дерева называется

  1. максимальное количество узлов

  2. максимальное количество связей

  3. максимальное количество листьев

  4. максимальная длина пути от корня до листа

  1. Степенью дерева называется

  1. максимальная степень всех узлов

  2. максимальное количество уровней его узлов

  3. максимальное количество узлов

  4. максимальное количество связей

  5. максимальное количество листьев

  1. Как определяется длина пути дерева

  1. как сумма длин путей всех его узлов

  2. как количество ребер от узла до вершины

  3. как количество ребер от листа до вершины

  4. как максимальное количество ребер

  5. как максимальное количество листьев

  6. как длина самого длинного пути от ближнего узла до какого-либо листа

  1. Дерево называется бинарным, если

  1. количество узлов может быть либо пустым, либо состоять из корня с двумя другими бинарными поддеревьями

  2. каждый узел имеет не менее двух предков

  3. от корня до листа не более двух уровней

  4. от корня до листа не менее двух уровней

множество узлов, которое

  1. Бинарное дерево можно представить

  1. с помощью указателей

  2. с помощью массивов

  3. с помощью индексов

  4. правильного ответа нет

  1. Какой метод поиска представлен в следующем фрагменте REPEAT I:=I+1 UNTIL (A[I]=X) OR (I=N);

  1. последовательный

  2. двоичный

  3. восходящий

  4. нисходящий

  5. смешанный

  1. Какой метод поиска представлен в следующем фрагменте

^ REPEAT K:=(I+J)DIV 2; IF X>A[K] THEN I=K+1 ELSE J:=K-1;

UNTIL (A[K]=X) OR (I>J);

  1. последовательный

  2. бинарный

  3. восходящий

  4. нисходящий

  5. смешанный

  1. Реализация поиска в линейном списке выглядит следующим образом

  1. ^ WHILE (P<>NIL) AND (P^.KEY<>X) DO P:=P^.NEXT

  2. WHILE (P<>NIL) DO P:=P^.NEXT

  3. WHILE AND (P^.KEY<>X) DO P:=P^.NEXT

  4. WHILE (P<>NIL) AND (P^.KEY<>X) P:=P^.NEXT

  5. WHILE (P<>NIL P^.KEY<>X) DO P:=P^.NEXT

  1. Как называются предки узла, имеющие уровень на единицу меньше уровня самого узла

  1. детьми

  2. родителями

  3. братьями

  1. В графах общая идея поиска в глубину состоит в следующем:

  1. Поиск начинаем с некоторой фиксированной вершины v0. Затем выбираем произвольную вершину u, смежную с v0, и повторяем просмотр от u. Предположим, что находимся в некоторой вершине v. Если существует ещё не просмотренная вершина u, u-v, то рассматриваем её, затем продолжаем поиск с нее. Если не просмотренной вершины, смежной с v, не существует, то возвращаемся в вершину, из которой попали в v, и продолжаем поиск (если v=v0, то поиск закончен);

  2. Поиск начинаем с некоторой фиксированной вершины v0. Затем выбираем произвольную вершину u, смежную с v0, и повторяем просмотр от u. Предположим, что находимся в некоторой вершине v. Если существует ещё не просмотренная вершина u, u-v, то рассматриваем её, затем продолжаем поиск с нее. Если не просмотренной вершины, смежной с v, не существует, то возвращаемся в вершину, из которой попали в v, и продолжаем поиск (если v=u, то поиск закончен);

  3. Поиск начинаем с некоторой фиксированной вершины v0. Затем выбираем произвольную вершину u, смежную с v0, и повторяем просмотр от u. Предположим, что находимся в некоторой вершине v. Если существует ещё не просмотренная вершина u, то рассматриваем её, затем продолжаем поиск с нее. Если не просмотренной вершины, смежной с v, не существует, то возвращаемся в вершину, из которой попали в v, и продолжаем поиск (если v=v0, то поиск закончен).

  1. Стандартным способом устранения рекурсии при поиске в глубину является использование:

  1. массива;

  2. очереди;

  3. стека;

  4. циклического списка.

  1. При поиске в ширину используется:

  1. массив;

  2. очередь;

  3. стек;

  4. циклический список.

  1. В последовательном файле доступ к информации может быть

  1. только последовательным

  2. как последовательным, так и произвольным

  3. произвольным

  4. прямым

  1. Граф – это

  1. Нелинейная структура данных, реализующая отношение «многие ко многим»;

  2. Линейная структура данных, реализующая отношение «многие ко многим»;

  3. Нелинейная структура данных, реализующая отношение «многие к одному»;

  4. Нелинейная структура данных, реализующая отношение «один ко многим»;

  5. Линейная структура данных, реализующая отношение «один ко многим».

  1. Узлам (или вершинам) графа можно сопоставить:

  1. отношения между объектами;

  2. объекты;

  3. связи

  4. типы отношений

  5. множества

  1. Рёбрам графа можно сопоставить:

  1. связи

  2. типы отношений

  3. множества

  4. объекты;

  5. отношения между объектами;




  1. Граф, содержащий только ребра, называется.

  1. ориентированным

  2. неориентированным

  3. простым

  4. смешанным




  1. Граф, содержащий только дуги, называется.

  1. ориентированным

  2. неориентированным

  3. простым

  4. смешанным




  1. Граф, содержащий дуги и ребра, называется.

  1. ориентированным

  2. неориентированным

  3. простым

  4. смешанным




  1. Есть несколько способов представления графа в ЭВМ. Какой из способов приведенных ниже не относится к ним.

  1. матрица инциденций;

  2. матрица смежности;

  3. список ребер;

  4. массив инцидентности.

  1. Если последовательность вершин v0, v1, …vp определяет путь в графе G, то его длина определяется:

  1. ; правильный ответ

  2. ;

  3. ;

  4. .

  1. Каким образом осуществляется алгоритм нахождения кратчайшего пути от вершины s до вершины t

  1. нахождение пути от вершины s до всех вершин графа

  2. нахождение пути от вершины s до заданной вершины графа

  3. нахождение кратчайших путей от вершины s до всех вершин графа

  4. нахождение кратчайшего пути от вершины s до вершины t графа

  5. нахождение всех путей от каждой вершины до всех вершин графа

  1. Суть алгоритма Дейкстры - нахождения кратчайшего пути от вершины s до вершины t заключается

  1. вычислении верхних ограничений d[v] в матрице весов дуг a[u,v] для u, v

  2. вычислении верхних ограничений d[v]

  3. вычислении верхних ограничений в матрице весов дуг a[u,v]

  4. вычислении нижних ограничений d[v] в матрице весов дуг a[u,v] для u, v

  1. Улучшение d[v] в алгоритме Форда- Беллмана производится по формуле

  1. D[v]:=D[u]+a[u,v]

  2. D[v]:=D[u]-a[u,v]

  3. D[v]:=a[u,v]

  4. D[v]:=D[u]

  1. Строка представляет собой

  1. конечную линейно-упорядоченную последовательность простых данных символьного типа

  2. конечную последовательность простых данных символьного типа

  3. конечную последовательность простых данных

  4. последовательность данных символьного типа




  1. Граф, содержащий только ребра, называется

  1. ориентированным

  2. неориентированным

  3. простым

  4. связным




  1. Граф, содержащий только дуги, называется

  1. ориентированным

  2. неориентированным

  3. простым

  4. связным




  1. Граф, содержащий ребра и дуги, называется

  1. неориентированным

  2. простым

  3. смешанным

  4. связным




  1. Путь(цикл), который содержит все ребра графа только один раз, называется

  1. Эйлеровым

  2. Гамильтоновым

  3. декартовым

  4. замкнутым


XIII. Дидактические материалы.




Лабораторная работа №1 Основные типы данных
В стандарте языка Паскаль описаны два типа переменных для литерных величин. Это - ^ String и Char. Переменная типа Char может содержать в себе только один единственный символ, тип String предназначен для хранения строковых величин до 255 символов длиною.

При описании переменной этого типа можно указать максимальное число символов, которое можно занести в нее (это число не должно превышать 255). Например:

Var S : String[30]; {максимальная длина строки S – 30 символов}

St: String; ]; {максимальная длина строки St – 255 символов}

При использовании строковой переменной, к каждому ее символу можно обратиться отдельно, указав его порядковый номер.  
Пример 1.

Вывести посимвольно строку 'primer'

Program pr1;

Var st: string[6]; i: integer;

BEGIN

st:='primer';

for i:=1 to 6 do write(st[i], ' ');

END.

В результате работы данной программы на экран будут распечатаны следующие значения: p r i m e r

Таким образом, первым символом st[1] в переменной st является буква p, вторым символом st[2] является r , третьим i и т.д.

Две строковые величины можно объединять. Эта операция называется конкатенацией и обозначается знаком "+".

Например, результатом выполнения следующих команд:

R:='kadabra';
H:='abra';
S:=H+R;

в переменной S будет значение 'abrakadabra'.

Для конкатенации результат зависит от порядка операндов (в отличие от операции сложения). Следует помнить о том, какой максимальной длины может быть результирующая переменная, так как в случае превышения значением выражения числа, указанного после String в описании переменной, "лишние" символы в переменную не попадут.

Строковые величины можно сравнивать между собой. Сравнение строк происходит посимвольно. Большим из двух символов считается тот, код которого больше. Если равны первые символы, то сравнивается следующая пара до тех пор, пока не будет найдено различие. Если начало строк совпадает, а одна из них кончается раньше, то вторая автоматически называется большей.

Код символа в Паскале можно определить при помощи функции Ord(C), где С - либо непосредственно указанный символ, либо переменная символьного типа, либо один символ строковой переменной.

Есть и обратная функция, которая возвращает символ по известному коду. Это функция Chr(N), где N - выражение, приводящее к целому числу в интервале от 0 до 255 (возможные значения кода символа). Очевидно, что Chr(Ord(C))=C, Ord(Chr(N))=N.

 

Пример 2.

Вывести на экран кодовую таблицу:

Program Pr2;
Var    I : Byte;
BEGIN

For I:=32 to 255 do Write(I:4, '-',Chr(I))

END.

  Цикл в программе начинается с 32 потому, что символы с кодами от 0 до 31 являются управляющими и не имеют соответствующего графического представления.

В Паскале используются следующие процедуры и функции для обработки строковых величин:

Функция Concat(S1[,S2,…,SN]): string – сцепляет (объединяет) строки S1, S2,…, SN. Параметры, указанные в квадратных скобках, не являются обязательными.

Функция Copy(S: string; Index, Count: integer): string – копирует из строки S количество Count символов, начиная с символа с номером Index.

Функция Length(S: string):byte – определяет длину строки S.

Функция Pos(SubS, S: string):byte – отыскивает в строке S первое вхождение подстроки SubS и определяет номер позиции, с которой она начинается. Если подстрока не найдена, то выдается 0.

Функция UpCase(C: char):char – преобразует строчную латинскую букву в прописную. Любые другие символы возвращаются без преобразования.

Процедура Delete(var S: string; Index, Count: integer) – удаляет количество Count символов из строки S, начиная с символа с номером Index.

Процедура Insert(SubS: string; var S: string; Index: integer) – вставляет подстроку SubS в строку S, начиная с символа с номером Index.

Процедура Str(X [:Width [:Decimals]]; Var S: string) – преобразует число Х в строку символов S. Параметры Width и Decimals задают формат преобразования (общую ширину поля и количество символов в дробной части соответственно).

Процедура ^ Val(S: String; var X; var Code: integer) – преобразует строковое значение S в его численное представление X типа Real или Integer. Параметр Code содержит признак ошибки преобразования (0 – нет ошибки),
Пример 3.

Определить  длину введенной пользователем строковой величины.

Program Pr3;
Var S : String;
BEGIN

Writeln('Введите последовательность символов'); Readln(S);

Writeln('Вы ввели строку из ',Length(S), ' символов')

END.
Пример 4.

Задан список из 6 слов. Определить, сколько слов списка начинается на букву «п».

Program Pr4;

Var s: string[20]; i,k:integer;

BEGIN

k:=0; for i:=1 to 6 do begin

writeln('Введите слово'); readln(s);

if s[1]='п' then k:=k+1;

end;

writeln(k);

END.
Пример 5.

Определить, является ли введенная строка "перевертышем".

Перевертышем называется такая строка, которая одинаково читается с начала и с конца. Например, "казак" и "потоп" - перевертыши, "канат" - не перевертыш".

     Поступим следующим образом: из введенной строки сформируем другую строку из символов первой, записанных в обратном порядке, затем сравним первую строку со второй; если они окажутся равны, то ответ положительный, иначе - отрицательный. Естественно, предложенный способ решения не является единственно возможным.

Program Pr5;
Var
     S,B : String;     I : Byte;
BEGIN

Writeln('Введите строку'); Readln(S);
B:='';          {Переменной B присваиваем значение "пустая строка"}
For I:=1 to Length(S) do {перебираем символы строки}
B:=S[I]+B; {Символы строки S присоединяются к переменной B слева}
If B=S Then Writeln('Перевертыш') Else Writeln('Не перевертыш')

END.

  

Пример 6.

Найти сумму цифр введенного натурального числа.

Program Pr6;
Var S : String; I,X,A,C : Integer;

BEGIN

Writeln('Введите натуральное число');

Readln(S); {Число вводится в строковую переменную}

A:=0;

For I:=1 To Length(S) Do Begin

Val(S[I],X,C); {Цифра преобразуется в число}

A:=A+X {Числа суммируются}

End;

Writeln('Сумма цифр равна ',A)

END.

    

Пример 7.

Во введенной строке заменить все вхождения подстроки 'ABC' на ‘KLMNO’.

Program Pr7;
Var S : String; A : Byte;

BEGIN

Writeln('Введите строку'); Readln(S);
While Pos('ABC',S)<>0 Do {пока подстрока 'ABC' содержится в строке S }
Begin

A:= Pos('ABC',S); {определяем позицию вхождения подстроки 'ABC' в строку S}

Delete(S,A,3); {удаляем из строки S 3 символа, начиная с позиции А }

Insert('KLMNO',S,A) {вставляем в строку S на это место подстроку 'KLMNO'}

End;
Writeln(S)

END.
Пример 8.

Во введенной строке подсчитать процент вхождения символа ‘o’ и символа ‘e’ (создать функцию для определения процентного содержания заданного символа в строке)

Program Pr8;

{функция, определяющая процент вхождения символа с в строку st}

Function proc_char(st:string;c:char):real;

Var k, n, I:integer; {k –количество заданных символов, n – длина строки,

I - номер очередного символа строки}

Begin

n:=length(st); {вычисляем длину строки}

k:=0; for I:=1 to n do {перебираем символы строки}

if st[I]=c then k:=k+1; {если очередной символ строки равен заданному

символу, то увеличиваем счетчик k}

proc_char:=k/n*100; {определяем процент заданных символов}

End;

Var st: string;

p1,p2: real;

BEGIN {основная программа}

write('st=');readln(st); {вводим строку}

p1:=proc_char(st,'o'); {определяем процентное содержание символа ‘o’}

p2:=proc_char(st,'e'); { определяем процентное содержание символа ‘e’}

writeln('o-', p1:2:1,'%'); {вывод результата}

writeln('e-', p2:2:1,'%');

readln;

END.
Пример 9.

Задан список из 8 слов. Найти самое короткое слово в списке. Если таких слов несколько, то распечатать их в один столбец.

Решение поставленной задачи сводится к нескольким этапам: ввести список слов в виде массива строковых переменных; подсчитать длину каждой строки; определить наименьшую из длин; распечатать те строки массива, длина которых совпадает с наименьшей.

Program Pr9;

Var s: array[1..8] of string[20];

n: array[1..8] of integer;

i, min: integer;

BEGIN

for i:=1 to 8 do begin

writeln('Введите слово'); readln(s[i]);

n[i]:=length(s[i]);

end;

min:=n[1]; for i:=2 to 8 do if min>n[i] then min:=n[i];

for i:=1 to 8 do if n[i]=min then writeln(s[i]);

END.

 

В данной программе для обозначения слов используется массив строковых переменных s, для обозначений соответствующих им длин слов – целочисленный массив n. Наименьший элемент массива n хранится в виде переменной min.

 

Пример 10.

Задана строка из двух слов, разделенных пробелом. Поменять в данной строке слова местами.

Program Pr10;

Var s: string[40];

s1,s2: string[20];

i,n: integer;

BEGIN

writeln('Введите строку');

readln(s);

n:=length(s); i:=pos(' ', s);

s1:=copy(s, 1, i); s2:=copy(s, i+1, n-i); s:=s2 + ' ' + s1;

writeln(s);

END.

В данной программе переменная s служит для обозначения строки из двух слов, переменные s1 и s2 – для обозначения первого и второго слова строки соответственно. Алгоритм решения заключается в том, что сначала с помощью функции pos выясняется, каким по счету символом в строке s находится пробел. Далее в строке выделяются две подстроки: одна включает все символы левее пробела (первое слово), другая – правее пробела (второе слово). В конце программы слова сцепляются в обратном порядке с использованием разделяющего их пробела.
^ Задания для самостоятельной работы

  1. Зашифровать введенную с клавиатуры строку, поменяв местами первый символ с третьим, второй с четвертым и т. д. Провести дешифровку.

  2. В заданном тексте удалить часть текста, заключенную в скобки (вместе со скобками).

  3. Напечатать самое длинное слово из заданного текста (слова разделены пробелами).

  4. Определить, какой процент слов в тексте содержит букву О (слова разделены пробелами).

  5. Сколько раз в тексте встречается заданное слово (слова разделены пробелами).

  6. В тексте вставить между словами вместо одного пробела запятую и пробел.

  7. Разделить заданный текст на строки. В качестве разделителя в тексте используется символ @.

  8. Определить, какой процент слов в тексте начинается на букву К. Слова разделены пробелами.

  9. Определить длину каждого слова из заданного текста (слова разделены пробелами).

  10. В заданном наборе слов найти слово максимальной длины.

  11. Написать программу, исключающую из символьной строки все цифры.

  12. Определить, содержит ли данный текст символы, отличные от букв и пробела.

  13. Имеется ли в заданном наборе такая пара слов, из которых одно является обращением другого (например: нос-сон).

  14. В заданном слове поменять местами равноотстоящие от концов слова буквы.

  15. Составить программу, результатом работы которой является удаление из текста пробелов и знаков препинания.

  16. Удалить из введенной строки все цифры, кратные 3.

  17. Изменить введенную строку, уменьшив все ее цифры, кроме 0, на 1.

  18. Определить количество "2" и "3" во введенной строке.

  19. Преобразовать введенную строку так, чтобы из нее были удалены буквы с ASCII - кодами от 70 до 75.

  20. Определить, имеются ли во введеной строке следующие подряд две "4".

  21. Введенную строку букв и цифр преобразовать так, чтобы после каждой цифры следовал пробел.

  22. Изменить введенную строку так, чтобы каждая из цифр увеличилась на 1 (9 заменить 0).

  23. Преобразовать введенную строку так, чтобы сначала были расположены цифры, потом буквы.

  24. Введена строка маленьких латинских букв. Преобразовать ее, превратив маленькие буквы в большие.

  25. Зашифровать введенное слово, сместив все буквы на 1 позицию (последняя становиться первой ).

  26. Определить, каких символов во введенной строке больше: тех, ASCII-коды которых принадлежат [48,57] или тех, ASCII-коды которых принадлежат [97,122].

  27. Преобразовать буквы (а-е) введенной строки в (А-Е).

  28. Подсчитать количество букв О и А во введенной строке.

  29. Подсчитать количество цифр во введенной строке, кратных 3

  30. Введенную строку цифр вывести, расположив в каждой подстроке по 5 цифр.

  31. Преобразовать буквы введенной строки так, чтобы их ASCII-коды увеличились на 3.

  32. Преобразовать введенную строку цифр, поставив перед каждой цифрой "5" цифру "6".

  33. Определить, заключена ли в диапазоне [20,25] сумма цифр введенной строки цифр.

  34. Определить наименьшую из цифр, занимающих во введенной строке четные позиции.

  35. Определить, четна ли сумма цифр, занимающих во введенном числе нечетные позиции.

  36. Преобразовать введенную строку так, чтобы выводимые части строк начинались с больших букв.

  37. Найти сумму цифр введенного натурального числа .

  38. Изменить нечетные цифры введенного числа, уменьшив их на 1.

  39. Определить длину самой длинной группы цифр во введенной строке.

  40. Найти сумму цифр введенной строки, содержащей цифры и буквы.

  41. Обратить введенную строку: abcd -> dcba.

  42. Составить программу ,заменяющую окончания строк: "ion" -> "ed"

  43. Изменить введенную строку цифр, заменяя цифры по схеме: N -> N mod 10

  44. Преобразовать цифры введенной строки по схеме: N -> 9-N

  45. Вводится цена в центах. Вывести ее значение в виде долларов и центов.

  46. Изменить введенную строку цифр, разместив сначала цифры занимающие нечетные места, потом четные.

  47. Вывести введенную строку группами символов по 4 символа в каждой.

  48. Преобразовать строку цифр, расположив цифры в порядке возрастания.

  49. Определить, содержатся ли во введенной строке одинаковые символы.

  50. Подсчитать количество больших и маленьких букв во введенной строке.



Лабораторная работа 2. Динамическая память. Указатели
Цель работы: формирование знаний и умений по работе с динамической памятью. Приобретение навыков работы с динамическими переменными, указателями.
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс курс по выбору по дисциплине « дв4»
Учебно-методический комплекс по дисциплине " Технические и аудиовизуальные средства обучения"

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине « Б2»
Учебно-методический комплекс (далее умк) по дисциплине «Информатика» разработан в соответствии с требованиями фгос впо к обязательному...

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине Инженерная графика
Данный учебно-методический комплекс рассмотрен и утвержден на заседании Учебно-методической комиссии роат. Протокол №4 от 01. 07....

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине Инженерная графика
...

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине «Информатика»
Учебно-методический комплекс по дисциплине «Использование современных информационных и коммуникационных технологий» разработан в...

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине «Информатика»
Учебно-методический комплекс по дисциплине «Использование современных информационных и коммуникационных технологий» разработан в...

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине « дв12»
Учебно-методический комплекс по дисциплине " Технические и аудиовизуальные средства обучения"

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине « дв32»
Учебно-методический комплекс по дисциплине " Технические и аудиовизуальные средства обучения"

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине по выбору Б3
Учебно-методический комплекс по дисциплине «Логическое программирование» разработан в соответствии с требованиями фгос впо к обязательному...

Учебно-методический комплекс по дисциплине «б в. 7» iconУчебно-методический комплекс по дисциплине « В. 3»
Учебно-методический комплекс (далее умк) по дисциплине «Профессиональные компьютерные программы» разработан в соответствии с требованиями...



Школьные материалы
Загрузка...


При копировании материала укажите ссылку © 2018
контакты
top-bal.ru

Поиск