Главная страница
Навигация по странице:

программирование_занятие_6. Решение задач на обработку чисел и строк



Скачать 0.86 Mb.
Название Решение задач на обработку чисел и строк
Анкор программирование_занятие_6.doc
Дата 19.12.2017
Размер 0.86 Mb.
Формат файла doc
Имя файла программирование_занятие_6.doc
Тип Документы
#13132
Категория Информатика. Вычислительная техника

«Решение задач на обработку чисел и строк».

Структурированные типы данных. Cтрока


1 Определение. Строковый (литерный). Базовый.
2 Способы представления (хранения).

BASIC PASCAL

<�им.пер.>$ <�им.пер.>:string[12];
BASIC Использование специальной области памяти, размер которой (по умолчанию 200 байт) может быть изменен оператором clear .

PASCAL Задается как одномерный массив знаков (см. ТД "массив").

В нулевом элементе массива хранится фактическая длина строки.
* Как исключение, ввод и вывод происходит как с базовыми элементами.
3 Основные операции.

BASIC PASCAL

конкатенация (слияние) =a$+b$ =concat(a,b,...)

выделение подстроки слева =left$(a$,x)

выделение подстроки справа =right$(a$,x)

выделение подстроки =mid$(a$,m,x) =copy(a,m,x)

замена части строки внутри строки mid$(a$,m,x)=

вставка строки внутрь строки insert(q,z,p)

удаление части строки delete(s,p,n)
4 Связь с данными других типов.

BASIC PASCAL

определение длины строки =len(a$) =lenth(a)

поиск подстроки в строке =instr(a$,b$) =pos(b,a)

представление чисел строкой цифр =str$(x) str(v:d:s,z);

{ =bin$(x) =oct$(x) =hex$(x) }

превращение строки цифр в число =val(a$) val(s,v,c)

-----------------------------------------------------------------------

2004
A09

программы

Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

Бейсик

Паскаль

Алгоритмический

x=5
y=7
t=x
' MOD -  стандартная операция, вычисляющая
остаток от деления нацело первого аргумента на второй `
x= y MOD x
y=t

x:=5;

y:=7;
t:=x;
x:= y mod x; {mod -  стандартная операция, вычисляющая остаток от деления нацело первого аргумента на
второй}
y:=t;

x:=5;

y:=7;
t:=x;
x:=mod (y,x); | mod - стандартная функция, вычисляющая      остаток от деления нацело первого аргумента на второй|
y:=t;



1)

x=2, y=5, t=5

2)

x=7, y=5, t=5

3)

x=2, y=2, t=2

4)

x=5, y=5, t=5



1







2005
А07

программа

Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, записанная на разных языках программирования):



Бейсик

Паскаль

Алгоритмический

a=42
b=14
a=a\b
b=a*b
a=b\a

\ — стандартная операция, вычисляющая
результат деления нацело первого аргумента на второй

a:=42;

b:=14;
a:=a div b;
b:=a*b;
a:=b div a; {div — 

стандартная операция, вычисляющая результат деления нацело первого аргумента на второй}

a:=42

b:=14
a:= div(a, b)
b:= a*b
a:= div(b, a) | div —

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




1)

a = 42, b = 14

2)

a = 1, b = 42

3)

a = 0, b = 588

4)

a = 14, b = 42










2004
С05

прогр

Во входном файле text.dat содержится текст на английском языке, заканчивающийся точкой (другие символы “.” в этом файле отсутствуют). Требуется написать программу на языке Паскаль или Бейсик, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть файл содержит следующую запись: It is not a simple task. Yes! Чаще всего здесь встречаются буквы I, S и T (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом: I 3










2009
А05

программа

Определите значение переменной c после выполнения следующего фрагмента программы.

Бейсик

Паскаль

Алгоритмический

a = 5

a = a + 6

b = – a

c = a – 2 * b

a:=5;
a:=a+6;
b:= –a;

c:=a–2*b;

a:=5
a:=a+6
b:= –a

c:=a–2*b




1)

c = –11

2)

c = 15

3)

c = 27

4)

c = 33




4







2009
B02

Программа

Запишите значение переменной b после выполнения фрагмента алгоритма:



Примечание: знаком := обозначена операция присваивания.

знаком * обозначена операция умножения.

511







2009
С01

программа



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

ПРОГРАММА

НА ПАСКАЛЕ

ПРОГРАММА

НА БЕЙСИКЕ

ПРОГРАММА

НА СИ

var x,y: real;

begin

readln(x,y);

if y<=1 then

if x>=0 then

if y>=sin(x) then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, y

IF y<=1 THEN

IF x>=0 THEN

IF y>=SIN(x) THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

void main(void)

{ float x,y;

scanf("%f%f",&x,&y);

if (y<=1)

if (x>=0)

if (y>=sin(x))

printf("принадлежит");

else

printf("не принадлежит");

}

Последовательно выполните следующее:

1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу.

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











2005
С03















2009
С02

программа

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









написать администратору сайта