У вас вопросы?
У нас ответы:) SamZan.net

Программирование на языке высокого уровня

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 30.6.2025

Министерство образования РФ

              Томский Государственный Университет Систем Управления и

                                                       Радиоуправления      

                                                               (ТУСУР)

Кафедра КСУП

Отчет

О лабораторной работе № 4 (Задачи №2 и №12)

По дисциплине «Программирование на языке высокого уровня»

                                                                                                                       

                                                                                                    

                                                                                                      Выполнил студент гр.585-2

                                                                  Миронов И. В.

                                                                                                      Проверил ст.преп. каф. КСУП      

                                                                                                      Потапова Е. А.

                           

Томск 2005         


Содержание

  1.  Содержание --------------------------- 2 стр.
  2.  Введение ----------------------------- 3 стр.
  3.  Задача №2:

 Основная часть ----------------------- 4–6 стр.

  •  Условие  задачи ------------------ 4 стр.
    •  Описание переменных -------------- 4 стр.
    •  Пошаговое описание алгоритма ----- 4 стр.
    •  Блок-схема ----------------------- 5 стр.
    •  Текст программы ------------------ 6 стр.
  1.  Задача №12:

 Основная часть ----------------------- 7–9 стр.

  •  Условие  задачи ------------------ 7 стр.
    •  Описание переменных -------------- 7 стр.
    •  Пошаговое описание алгоритма ----- 7 стр.
    •  Блок-схема ----------------------- 8 стр.
    •  Текст программы ------------------ 9 стр.
  1.  Вывод -------------------------------- 10 стр.

ВВЕДЕНИЕ

Строки.

       Тип string (строка) в Турбо Паскале широко используется для обработки текстов. Количество символов в строке-переменной может меняться от 0 до N, где N- максимальное количество символов в строке. Значение N определяется объявлением типа string [N] и может быть любой константой порядкового типа, но не более 255.

        Действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций:

        concat (s1 [,s2,...,sN] ) – функция типа string; возвращает строку, представляющую собой сцепление строк-параметров s1,s2,...,sN.

        cоpy (st, index, count) – функция типа string; копирует из строки st count символов, начиная с символа с номером index.

        delete (st, index, count) – процедура; удаляет count символов из строки st, начиная с символа с номером index.

        insert (subst, st, index) – процедура; вставляет подстроку subst в строку st, начиная с символа с номером index.

        length (st) – функция типа integer; возвращает длину строки st.

        pos (subst, st) – функция типа integer; отыскивает в строке st первое вхождение подстроки subst и возвращает номер позиции с которой она начинается; если подстрока не найдена, возвращается ноль.

        str (x [: windth  [:decimals]], st) – процедура; преобразует число Х любого вещественного или целого типов в строку символов st так, как это делает процедура writeln перед выводом; параметры width и decimals, если они присутствуют, задают формат представления: width определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа Х, а decimals – количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х – вещественное число).

        val (st, x, code) – процедура; преобразует строку st во внутреннее представление целой части или вещественной переменной Х, которой определяет тип этой переменной; параметр code содержит ноль, если преобразование прошло успешно, и тогда в Х помещается результат преобразования, в противном случае он содержит номер позиции в строке st, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется.

         upcase (ch) – функция типа char; возвращает для символьного выражения ch, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением ch является любой другой символ, функция возвращает его без преобразования.

ЗАДАЧА №2

Основная часть.

1). Условие задачи:

2. Для заданных трех строк S1, S2 и S3 определить какая из этих строк

является палиндромом.

2). Описание переменных, используемых в программе:

 Str1[i],str2[i],str3[i] – символьный массив.

 s1,s2,s3 – строки.

 d1,d2,d3 – переменные, определяющее симметричность строк.

 n – кол-во символов строке.

 i – счетчик цикла.

3). Пошаговое описание алгоритма:

Шаг №1 выводим последовательно три строки символов;

Шаг №2 проверяем каждую строчку на симметричность(т.е. палиндром), если первый член равен n-ом, второй равен (n-1)-ому то строка - полиндром;

i,n,d1,d2,d3 – целочисленные переменные. Для этих переменных выбираем тип integer, так как нужны целочисленные значения.

str[i],str[i],str[i] – строковые массивы.

s1,s2,s3 – строковые переменные.

Блок – схема:

ТЕКСТ ПРОГРАММЫ:

Uses Crt;

var

str1,str2,str3:array [1..100] of char;

  s1,s2,s3:string;

  i,n:integer;

  d1,d2,d3:integer;

BEGIN

clrscr;

randomize;

d1:=1;d2:=1;d3:=1;

write('Введите n - ');

readln(n);

write('1-ая строка: ');

for i:=1 to n do

begin

str1[i]:=chr(65+random(2));

s1:=s1+str1[i];

end;

write(s1);

for i:=1 to n do if  (str1[i]=str1[n-i+1]) then d1:=d1*1 else d1:=d1*0;

if d1=1 then write ('-Палиндром');

write('2-ая строка: ');

 for i:=1 to n do

begin

str2[i]:=chr(65+random(2));

s2:=s2+str2[i];

end;

write(s2);

for i:=1 to n do if (str2[i]=str2[n-i+1]) then d2:=d2*1 else d2:=d2*0;

if d2=1 then write ('-Палиндром');

write('3-я строка: ');

 for i:=1 to n do

begin

str3[i]:=chr(65+random(2));

s3:=s3+str3[i];

end;

write(s3);

for i:=1 to n do if (str3[i]=str3[n-i+1]) then d3:=d3*1 else d3:=d3*0;

if d3=1 then write ('-Палиндром);

readln;

END.

{использование доп. библиотеки}

{присвоение переменным str1[i],str2[i],str3[i] значение char – строковой массив}     

{присвоение переменным s1,s2,s3 значение string}     

{присвоение переменным i,n,d1,d2,d3 значение integer}

{очистка экрана}

{Вводим n}

{Выводим произвольно первую строку на экран}

{Если строка симметрична, то она палиндром}

{Выводим произвольно вторую строку на экран}

{Если строка симметрична, то она палиндром}

{Выводим произвольно третью строку на экран}

{Если строка симметрична, то она палиндром}

{конец программы}


ЗАДАЧА №12

Основная часть.

1). Условие задачи:

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

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

2). Описание переменных, используемых в программе:

 Str1[i],str2[i],str3[i] – символьный массив.

 s1,s2,s3 – строки.

 n – кол-во символов строке.

 i,j – счетчики циклов.

 k – номер символа в строке.

3). Пошаговое описание алгоритма:

Шаг №1 выводим последовательно три строки символов;

Шаг №2 с помощью оператора pos находим в первой строке символы, которые есть во второй и с помощью оператора delete удаляем эти символы из первой строки (k-номер символа в первой строке);

Шаг №3 Присваиваем третьей строке(s3) значение, полученное в результате удаления из первой строки символов, имеющихся во второй строке;

Шаг №4 выводим строку s3 на экран;

i,n,j,k – целочисленные переменные. Для этих переменных выбираем тип integer, так как нужны целочисленные значения.

str[i],str[i],str[i] – строковые массивы.

s1,s2,s3 – строковые переменные.

Блок – схема:

ТЕКСТ ПРОГРАММЫ

Uses Crt;

var

str1,str2,str3:array [1..100] of char;

s1,s2,s3:string;

i,n,j,k,p:integer;

BEGIN

clrscr;

randomize;

write('Введите n - ');

readln(n);

write('Первая строка имеет вид: ');

for i:=1 to n do

begin

str1[i]:=chr(65+random(10));

s1:=s1+str1[i];

end;

writeln(s1);

write('Вторая строка имеет вид: ');

 for j:=1 to n do

begin

str2[j]:=chr(65+random(10));

s2:=s2+str2[j];

end;

writeln(s2);

write('Третья строка имеет вид: ');

for j:=1 to n do

begin

   repeat

   k:=pos(str2[j],s1);

   if k>0 then delete(s1,k,1);

   until k=0;

end;

s3:=s1;

writeln(s3);

readln;

END.

{использование доп. библиотеки}

{присвоение переменным str1[i],str2[i], str3[i] значение char – строковой массив}     

{присвоение переменным s1,s2,s3 значение string}     

{присвоение переменным i,n,j,k,p значение integer}

{очистка экрана}

{Вводим n}

{Выводим произвольно первую строку на экран}

{Выводим произвольно первую строку на экран}

{Выводим третью строку}

{Удаляем из первой строки элементы принадлижащие второй строке }

{Присваиваем s3:=s1}

{Выводим третью строку}

{конец программы}

ВЫВОД.

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

Конец

d1:=d1*1

Да

Нет

Для i от 1 до n

Нет

Да

i=n

Ввод n

начало

Для i от 1 до n

d1:=d1*0

Да

Нет

i=n

Вывод str1[i]

str1[i]=

=str1[n-i+1]

S1

Палиндром

S3

s3:=s1

Да

Выводим аналогично вторую и третью строку

Да

Да

Нет

K=0

delete(s1,k,1)

Да

k>0

начало

Выводим аналогично вторую строку

i=n

d1:=d1*0

Для i от 1 до n

str1[i]=

=str1[n-i+1]

i=n

Вывод str1[i]

Для i от 1 до n

Конец

d1:=d1*1

Нет

Ввод n

Да

Да

Нет

k:=pos(str2[j],s1);

Для i от 1 до n

Да

i=n

Нет

Нет




1. близкого к поверхности стояния или периодического поднятия грунтовых вод; 2 поверхностного застоя атмосфе
2. Отмечается рост заболеваемости преимущественно за счет лиц молодого возраста.html
3. Роботы в ближайшем будущем
4. Причины появления молодежных субкультур 2
5. Алхимический сюжет в готическом романе Питер Акройд Дом Доктора Ди
6. Тема- Безопасность технологического процесса и оборудования на рабочем месте электросварщика ручной сварк
7. культурную программу
8. Тайный проект Вождя Сидорова открывает серию публикаций под общим названием Основы Державного строитель
9. педагогические средства ее преодоления
10. Правовые основы заключения международного договора куплипродажи