Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания icon

Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания




НазваМетодические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания
Сторінка3/8
Дата конвертації26.02.2013
Розмір1.33 Mb.
ТипМетодические указания
1   2   3   4   5   6   7   8
Тема 6:^ ЛИТЕРНЫЙ ТИП

6.1* Всегда ли справедливо следующее утверждение:

а) если с—литера и '0'≤с≤’9', то с—цифра;

б) если с—литера и ‘a’≤c≤'z', то с—строчная латинская буква;

в) '9'<'а'; *

г) '0'=0;

д) ord('0')=0;

е) 'а'=’А')

ж) если с и d—литеры, то c
з) ord(chr(k))=k для любого целого k;

и) chr(ord(c))=c для любой литеры с.

6.2* Вычислить значения выражений;

a) pred('7'); б) succ('0')=pred('2');

в) ord('5')-ord('0'); r) 'd'>’a’;

д) ord('q')=chr(16);

ж) ord(pred(chr(24))); з) chr(ord('5')+l). .

6.3* Имеется литерная переменная d. Присвоить логической переменной t значение true, если выполняется указанное условие, и значение false в противном случае:

а) значение d—это литера ‘*’.

б) значение d—литера 'а' или 'q'

в) значение d—цифра.

6.4* Определить значение литерной переменной d после выполнения следующих операторов:

a) c:='+'; d:=c; б) с: = '+'; d:=’c’

6.5* Вычислить s—сумму порядковых номеров всех букв, входящих в слово SUM-,.

6.6* Напечатать текст, образованный литерами с порядковыми номерами 65, 71 и 69.

6.7* Литерной переменной next присвоить цифру, следующую за цифрой, являющейся значением литерной переменной dig, считая при этом, что за '9' следует 'О'.

6.8* Логической переменной Ь присвоить значение trite, если между литерами 'а' и 'z' нет иных символов, кроме строчных латинских букв, и значение false иначе.

6.9* Напечатать в одну строку все литеры между 'А' и 'Z', включая и эти буквы.

6.10 Напечатать таблицу следующего вида:


а)* 100...00 б) 999...99 в) 0123456789

020...00 088...88 1234567890

....... .... ......

000...09 000...01 9012345678

Далее в этом параграфе под «текстом» понимается заданная во входном файле input последовательность литер {возможно, пустая), за которой следует точка (в сам текст точка не входит).

6.11* Программа, Напечатать true, если в заданном тексте буква а встречается чаще, чем буква b, и напечатать false в противном случае.

  1. Программа. Если в заданный текст входит каждая из букв слова key, тогда напечатать yes, иначе—nо.

  2. Программа. Проверить, правильно ли в заданном тексте расставлены круглые скобки (т. е. находится ли справа от каждой открывающей скобки соответствующая ей закрывающая скобка, а слева от каждой закрывающей—соответствующая ей открывающая). Ответ — ДА или НЕТ.

6.14* Программа. Определить, является ли заданный текст правильной записью целого числа (возможно, со знаком).

6.15 Известно, что в заданный текст входит буква а, причем не на последнем месте. Требуется напечатать литеру текста, непосредственно следующую за первым вхождением а. Можно ли решить эту задачу следующим образом (с—литерная переменная):

repeat read(c) until c='a'; writeln(succ(c))?

6.16 Программа. Напечатать заданный непустой текст:
а)* удалив из него все цифры и удвоив знаки «+» и «—»;

б)* удалив из него все знакя «+», непосредственно за которыми идет цифра;

в) удалив из него все буквы b, непосредственно перед которыми находится буква с;

г) заменив в нем все пары ph на букву f.

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

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

6.19 Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые:

а)* начинаются с буквы а;

б) оканчиваются буквой w;

в) начинаются и оканчиваются одной и той же буквой;

г) содержат хотя бы одну букву d;

д) содержат ровно три буквы е.

6.20* Значениями литерных переменных с2, с1 и сО являются цифры. Присвоить целой переменной k число, составленное из этих цифр (например, если с2='8', cl = '0' и сО = '5' то k=805).

6.21* Присвоить литерным переменным с2, с1 и сО соответственно левую, среднюю и правую цифры трехзначного числа k.

6.22* Используя только литерный ввод, т.е. процедуру read(c), где с—литерная переменная, ввести непустую последовательность цифр, перед которой может находиться знак «+» или «—» и за которой следует пробел, и, получив соответствующее целое число, присвоить его целой переменной k.

  1. Используя только литерный вывод, т. е. процедуру write(c), где с—литерный параметр, вывести на печать значение целой переменной k (знак «+» не печатать).

  2. Программа. Дано натуральное число п. Напечатать в троичной системе счисления целые числа от 0 до n.

  3. Программа. Дана непустая последовательность неотрицательных целых чисел, записанных в семеричной системе счисления; между соседними числами—пробел, за последним—точка. Напечатать в десятичной системе наибольшее из них.

  4. Программа. Задано неотрицательное целое число, записанное в восьмеричной системе счисления (за числом — пробел). Напечатать это число в пятеричной системе счисления.

  5. Программа. Дана последовательность литер, имеющая следующий вид; dl±d2±...±dn (di—цифры, n>1), за которой следует точка. Вычислить значение этой алгебраической суммы.

6.28 Используя только литерный ввод, ввести заданное вещественное число (за ним—пробел), записанное по правилам языка Паскаль, и присвоить его вещественной переменной х.

6.29 Используя только литерный вывод, напечатать вещественное число x: в следующей форме:

±0.dld2...d9E±p1p2

где di pj—цифры, причем d1≠0, если x ≠ О.

6.30* Имеются целые числа k и n от 1 до 80. Напечатать в очередной строке (номера ее позиций—от 1 до 80):

а) литеру * в k-й позиции;

б) литеру * в k-й позиции и литеру I в n-й позиций (при k—п печатать только звездочку).'

6.31 Программа. Напечатать график функции у=х2—1 на отрезке [—1,2] с шагом OY. Ось ОХ направить по
вертикали вниз, а ось OY—по горизонтали вправо, В каждой строке печатать «кусочек» оси ОХ (например, литеру I)
и звездочку—в позиции, соответствующей очередному значению функции; ось OY не печатать.
Примерный вид графика:

*

* I

* I

* I

*

I *

I *

6.32 Программа. Напечатать в точках 1, 2, ..., k, где k—заданное целое число от 2 до 70, график функции Эйлера φ(n), вычисляющей количество целых чисел от 1 до п—1, взаимно простых с числом n.

6.33 Программа, В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству:

а) текст является десятичной записью числа, кратного 9;

б) текст является записью четного числа в семеричной системе;

в) текст является десятичной записью числа, кратного 6;

г) текст является десятичной записью числа, кратного 4;

д) текст является шестнадцатеричной записью числа, кратного 5;

е) текст начинается с некоторой ненулевой цифры, за которой следуют только буквы, и их количество равно числовому значению этой цифры;

ж) текст начинается с k букв (l≤k≤9), за которыми

Переменной t присвоить значение true, если дата d1, m1 предшествует (в рамках года) дате d2, m2, и значение false иначе.

7.6* var m, m1:месяц; {определение «месяц» см. в 7.5} k:l..maxint; n:1..12;

Присвоить переменной m1:

а) название месяца, следующего за месяцем т (с учетом того, что за декабрем идет январь);

б) название k-гo месяца после месяца т;
в) название n-го месяца года.

7.7 type страна=(Австрия, Болгария, Греция,Италия, Норвегия, Франция, ФРГ); столица=(Вена,София,Афины,Рим,Осло,Париж, Бонн);

var st:cтpaнa; сар:столица;

По значению переменной st (названию страны) присвоить переменной cap название столицы этой страны.

7.8 var P: (ада, бейсик, модула2, лисп, паскаль, пл1, фортран);

A: (ada, basic, modula2, lisp,

pascal, pll, fortran);

По ^ P—русскому названию языка программирования присвоить переменной А английское название этого языка.

7.9 type название = (ноль, один, два, три,

четыре, пять);

var: d:'0'..'5'; n:название;

По литере-цифре d присвоить переменной п название этой цифры.

7.10 type нота=(до,ре,ми,фа,соль,ля,си);

интервал=(секунда, терция, кварта, квинта, секста, септима);

var n1,n2: нота; i:интервал;

Определить i —интервал, образованный нотами n1 и n2 (п1≠п2): секунда—это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до), терция—интервал через ноту (например, фа и ля, си и ре) и т. д.

7.11* Определить, какими будут значения переменных pud после выполнения операторов

p:=true; d:=l;

case k mod 10 of

3, 2,7, 5: d:=k;

l:;

4,8: begin p: = false; d: = 2 end; ■

9,6: begin p:=false; d:=3 end

end {of case}

если целая переменная k имеет следующее значение:

а) 6; б) 235; в) 71; г) 100.

7.12 var u,w:'a'.. 'z'; Найти ошибки в следующем операторе:

case u .of

'a'.. 'w': w:=succ(u);

'u', 'y': u:= 'g'; w:=u

end

7.13* type сезон=(зима,весна,лето,осень);

месяц=(янв,фев,мар,апр,май,нюн,июл,авг,сен,окт,ноя,дек);

var m:месяц; s:сезон;

Определить s—сезон, на который приходится месяц m;

7.14 type страна=(ГДР,Куба,Лаос,Монако,Непал,Польша);

коитинент=(Азия, Америка, Европа);

var s:страна; с: континент;

По s—названию страны определить с—название ее континента.

7.15 type единица=(дециметр,километр,метр,миллиметр, сантиметр);

длина=геаl;

var x:длина; р: единица;

Значение переменной х, означающее некоторую длину в единицах р, заменить на величину этой же длины в метрах.

7.16* type цвет=(черный,серый,белый);
var с:цвет;

Напечатать значение переменной о.

7.17 var k.:1..9;

Напечатать значение переменной k римскими цифрами.

7.18* type letters (a, b,c,d);

var x:letter;

Ввести заданное во входном файле значение типа letter (т. е. а, b, с или d) и присвоить его переменной х.

  1. Для целого числа А от 1 до 99 напечатать фразу «мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить на слово «год» или «года».

  2. Для натурального числа k напечатать фразу «мы нашли k грибов в лесу», согласовав окончание слова «гриб» с числом k.

  1. type падеж=(им,род,дат,внн,твор,предл);

слово=(степь,боль,тетрадь,дверь);

var w:слово; р:падеж;

Напечатать слово w в падеже р и единственном числе (например, при w—степь и р = твор надо напечатать слово степью).

7.22 type курс=(С,В,Ю,3); {север,восток,юг,запад}

приказ=(вперед .вправо, назад,влево);

vaf К1,К2:курс; ПР:приказ;

Корабль сначала шел по курсу K1, а затем его курс был изменен согласно приказу ПР. Определить К2—новый курс корабля.

7.23* var d:28..31; m:месяц; {см. 7.5}

Переменной d присвоить количество дней в месяце т. (гад считать невисокосным).

7.24 var у:1901..2000; m:месяц; {см. 7.5} d:1..31;

t: boolean;

Переменной t присвоить значение true, если тройка у, т, d образует правильную дату, и значение false—иначе (при 31 июня и т. п.).

7.25 var d,dl:1..31; m,m1:месяц; {см. 7.5}

у:1901..2ООО; yl:1901..2001;

По дате d, m, у определить d1, ml, y1—дату следующего дня.

7.26 var k:1..366; d:1..31; m:месяц; {см. 7.5}

а)*определить k—порядковый номер того дня високосного года, который имеет дату d, m;

б) определить d, m—дату k-ro по счету дня високосного года.

7.27 type число=1..31;

месяц=(янв,фев,мар,апр,май,июн,нюл, авг.сен.окт,ноя,дек);

деньнеделн=(вс,пн,вт,ср.чт.пт.сб);

var d:число; m:месяц; wdl.wd: деньнедели;

k:O..12;

Считая, что год невисокосный и его 1 январи приходится на день недели wd1, определить:

а) wd—день недели, на который приходится день с датой d, m;

б) k—количество понедельников в году, приходящихсяна 13-е числа.

7.28 Найти все ошибки в следующих программах и объяснить, какие правила языка Паскаль при этом нарушены:

а) program ошибки (input.output);

type месяц=(янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,ден);

зима=дек..фев;

весна = мар..май;

var m:месяц; k: 1. .12;

begin read(m);

if m>весна then m: = июнь;

for k:=ord(янв) to ord(m) do

m:=succ(m);

writeln(m)

end.

б) program ошибкн( input .otitpnt)

type цифра='О'. '9';

знак=('+','—','*', '/');

var d:цифра; t:boolean;

begin read(d);

case d of

2,3,5,7: t:=true; d: = suce(d);

0,1,4,6,8,9: t:=false;

end.

7.29 В старояпонском календаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год—год зеленой крысы - был началом очередного цикла).

Написать программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскоыу календарю.

7.30 Программа. Пусть значение функции f(n) равно количеству букв в записи числа n русскими словами:

F(1)=4 (один), f(3)=3 (три), f(42)=8 (сорок два) и т. п. Напечатать все натуральные числа n, меньшие 100, для которых f(n)=n.

Тема 8:^ РЕГУЛЯРНЫЕ ТИПЫ: ВЕКТОРЫ

8.1* Имеются описания:

type дены=(вчера,сегодня,завтра);

вектор=аrrау [1..30] of real;

var а:вектор;

b:packed array [—2..2] of (x,y,z);

c:array ['0'..'Э'] of вектор;

d:array [день] of 0..23;

Для каждого из массивов а, Ь, с и d указать:

а) сколько в нем элементов;

б) какие значения могут принимать его элементы;

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

8.2* Описать регулярный тип R, объединяющий в себе массивы, элементами которых являются натуральные числа, а индексами —любые литеры.

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

а) Может ли массив содержать один элемент? А ни одного?

б) Можно ли во время выполнения программы изменить размер массива (количество элементов в нем)?

в) Могут ли элементами некоторого массива быть числа 1, 1.41, 1.73 и 2?

г) Верно ли, что тип элементов массива может быть любым?

д) Может ли типом индекса массива быть тип integer или rеаl

е) Каковы достоинства и недостатки упакованных массивов по сравнению с неупакованными? Кто (автор программы или транслятор) определяет, упаковывать массив или нет?

8.4* Указать ошибки в следующих описаниях:

const n = 50;

type слово=packed array [0..n—1] of буква;

бука=’а’...’z’;

вектор =аrrау [real] of integer;

цифры=аrrау [true…false] of (1,2,3,4);

var k:l..maxint;

x:аrrау [l..k] of char;

y:packed array [—n..n] of 0..0;

z:array [(a,b,c)] of boolean;

8.5* const n=41;

var x:array [l..n] of real; y:real;

Написать фрагмент программы для вычисления:

а)

б) у=maxxi

в) y=X1-X2+X3-… -Xn-1+Xn

г) y= X1 Xn+ X2 Xn-1+…+ Xn X1

д)

е) у=хn( хn + хn-1)( хn+ хn-1+ хn-2)…( хn+…+ х1)

*) *-..l

8.6 const m=50;

var С: packed array [О..m] of char;

B: packed array [O..m] of boolean;

По массиву С получить массив В: элементу В[i] присвоить true, если C[i]—цифра, и присвоить false иначе.

    1. type имя=(Валя, Гена, Женя, Коля, Маша, Нина, Саша, Таня, Федя, Шура);

var Пол:аrrау [имя] of (муж,жен);

Рост:аrrау [имя] of 140..200;

И:имя; Ср:геа1;

По массивам Пол и Рост определить:

а)* И—имя самого рослого мужчины;

б) Ср—средний рост женщин.

8.8* type текст=расkеd array [1..72] of char;

шифр=расkеd array [char] of char;

var t:текст; k:шифр;

Зашифровать текст t, заменив в нем каждую литеру из значение элемента массива k, индексом которого является эта литера.

8.9 type деньнедели=(пн,вт,ср,чт,пт,сб,вс);
var год: array [1..365] of деньнедели;

Присвоить каждому элементу год[i] название того дня недели, на который приходится i-й по счету день невисокосного года, если известно, что I января—среда (год[1]:=ср, год[2]:=чт и т. д.).

8.10 type республика=(Грузия,Россия,Украина);

город=( Киев,Москва,Одесса,Сочи,ТбилисиДомск);

var x:array [1..20] of город;

Напечатать название республики, города которой наиболее часто встречаются в массиве x (считать, что такая республика одна).

8.11 Указать, какие операции над массивами (как едиными объектами) допустимы в Паскале, и найти ошибки в следующей программе:

program ошибки (input,output);

var х,у:аrrау [1..20) of real;

z,u:array [1..50] of real;

i:integer;

begin read(x,y);

if x<>y then begin z:=x;

x:=y; y:=z end

else x:=x+y;

for i: = l to 20 do u[i]:=x[i] + y[i];

z:=u; .

writeln(x)

end.

8.12* const n=30;

type вектор=аrrау [l..n] of integer;

var а,Ь,с:вектор;

Если векторы a и Ь различны, то вектору с присвоить их сумму, инaче в вектор с переписать элементы массива а.

8.13* Программа. Дано 100 целых чисел. Распечатать их в обратном порядке по 6 чисел в строке.

8.14*. var x:array [I..40] of char;'

y:array [0..39] of char;

Переписать элементы массива х в массив у. (Можно ли эту задачу решить с помощью оператора у;=х?)

8.15* Для решения каких из следующих задач нужны массивы, а в каких задачах можно обойтись и без них?

а) Дано 50 чисел. Найти их среднее арифметическое

б) Дано 50 чисел. Определить, сколько среди них отличных от последнего числа.

в) Дано 100 чисел. Напечатать сначала все отрицательные из них, а затем все остальные.

г) Дано число а. Определить первый отрицательный член последовательности х1 x2, x3…,, где x1=a, х„= tg(хn-1).

8.16*. Программа. Вычислить величину

(X1y1+x3y3+…+x29y29)/(x2y2+x4y4+…+x30y30)

если числа для ввода заданы в следующем порядке:

а) X1, x2, …., x30, y1, y2, …., y30;

б) X1, y1, x2, y2,…, x30, y30;

8.17. Программа. По заданным вещественным числам a0,a1, …, a20, t вычислить значение многочлена

a20x20+a19x19+…+a1x+a0

и его производной в точке t

Какие изменения надо внести в программу, чтобы она правильно выполнялась для многочлена 45-й степени?

8.18*. Программа. Дан текст из 80 литер. Напечатать сначала все цифры, входящие в него, а затем все остальные литеры, сохраняя при этом взаимное расположение литер в каждой из этих двух групп.

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

  2. Программа. Дан непустой текст из цифр, за которым следует точка. Напечатать цифру, наиболее часто встречающуюся в этом тексте (если таких цифр несколько, напечатать любую из них).

  3. const п=1000;

var s:packed array [l..n] of char;

Напечатать те элементы массива s, индексы которых являются:

а)* степенями двойки (1, 2, 4, 8, 16, ...);

б) полными квадратами (1, 4, Э, 16, 25, ...);

в) числами Фибоначчи (1, 2, 3, 5, 8, 13, ...).
8.22 var x:array [1..100] of real;

а:аrrау [1..30] of 1..100;

s:real; .

Вычислить s—сумму тех элементов массива х, индексы которых совпадают со значениями элементов массива а (аi≠aj при i≠j).

8,23. var х:аrrау [1..9999] of real; s:real;

Вычислить (индекс 1 -го слагаемого каждой суммы—квадрат):

s=(x1+x2+x3)(x4+x5+…+x8)(x9+…+x15)…(x9801+…+x9999)
8.24 const п=20; .

var s:packed array [1..n] of char;

Напечатать литеры si массива s в виде таблицы:

S1S2S3…Sn-1Sn

S2S3S4…SnS1

…..

SnS1S2…Sn-2Sn-1

8.25 Программа. Напечатать величины a0, a1,…,a99, где a0 —заданное целое число, аn=a[n/2]+an-1 при п=1, 2, ... 99.

8.26 const n=100;

var x:array [l…n] of real;

Преобразовать массив х по следующему правилу (х'кзначение k-го элемента массива после преобразования):
a)xk=maxxi при 1≤ i ≤k;

б)* элементы массива расположить в обратном порядке;

в) х1=x1, хn=xn xk=(xk-1+xk+xk+1)/3 при k=2, 3…, n-1;

г)* элемент массива циклически сдвинуть на одну позиции влево: хn=x1, xk=xk+1 при k=1, 2 …, n-1;

д) элементы массива циклически сдвинуть на две позиции влево.

8.27 var x,y-.array [l..70] of real;

k:1..69;

Преобразовать массив х по следующему правилу (воспользовавшись массивом у как вспомогательным);

а) все отрицательные элементы массива х перенести в его начало, а все остальные—в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среда остальных элементов;

б) элементы массива х циклически сдвинуть на k позиций влево.

8.28* const k=50; m=20; n=70; {n=k+m}

var x:array [l..k] of real;

y:array [l..m] of real;

z:array [l..n] of real;

Элементы каждого из массивов хну упорядочены по неубыванию. Объединить элементы этик двух массивов в один массив zтак, чтобы они снова оказались упорядо­ченными по неубыванию.

8.29 var k:0..99999;

d:packed array [1..5] of '0'..'9';

а) В массив d записать цифры числа k

б) Получить k—целое, составленное из цифр массива d.

8.30 type мантисса=packed array [1..9]

of '0'..'9';

порядок=расked array [1..2]

of '0'..'9';

var m:мантисса; р:порядок; x:real;

Переменной х присвоить; вещественное число 0.m1m2...m9*10P1P2..

    1. type месяц=(янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек);

var КД:аrrау [месяц] of 28..31;

Присвоить каждому элементу массива КД значение, равное количеству дней в соответствующем месяце (невиеокосного) года.

8.32 var t:array [1...365] of real; .

m:месяц; {см. 8.31}

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

8.33 const n=40;

var х:аrrау [1..n] of integer;

y,k:integer; t:boolean;

Написать фрагмент программы для решения следующей задачи:

а)* переменной t присвоить значение true, если элементы массива х упорядочены строго по возрастанию, и значение false иначе;

б) переменной t присвоить значение true, если в массиве х нет нулевых элементов и при этом положительные элементы чередуются с отрицательными, и значение false иначе;

в) переменной k присвоить либо номер первого вхождения у в массив х, либо число п+1, если у не входит в x;

г)вычислитьy=x1+x1x2+x1x2x3+...+x1x2...xm, где т— либо номер первого отрицательного элемента массива х, либо число n, если в массиве х нет отрицательных элементов.

8.34 Программа. Дан текст; из 80 литер. Определить, симметричен ли он, т. е. читается ли он одинаково слева направо и справа налево.

8.35* tур:фамилия=(Бетелин, Войскунский, Коннов,Мальковский, Пильщиков, Школьный);

имя=(Василий, Владимир, Игорь, Михаил,Олег, Юрий);

var MM511:array [фамилия] оf имя;

ЕстьТезкн :Ьоо1еаn;

Переменной ЕстъТеэт присвоить значение true, если в массиве ММ511 есть одинаковые имена, и значение false иначе. -

8.36 var х:аrrау [1..50] of 1.,. maxint;

t:boolean;

Переменной t присвоить значение true или false в зависимости от того, есть или нет среди элементов массива х:

а) хотя бы одно число Фибоначчи;

б) не менее двух степеней двойки.

8.37 type слово=расked array [I..10] of char;
var х,у:слово; eq:boolean;

Считая, что в каждом из слов х и у нет повторяющихся литер, присвоить переменной eq значение true, если слова х и у отличаются только порядком входящих в них литер, и значение false иначе. .

8.38 const n=100;

var х:arrау [1..n] of real;

Упорядочить массив х по неубыванию (т. е. переставить его элементы так, чтобы для всех k выполнялось хk≤xk+1) используя следующий алгоритм сортировки (упорядочения)

а)* сортировка выбором: отыскивается максимальный элемент и переносится в конец массива; затем этот метод применяется ко всем элементам, кроме последнего (он уже находится на своем окончательном месте), и т. д;

б) сортировка обменом (метод пузырька); последовавaтельно сравниваются пары соседних элементов хк и xk+I (k=1,2,3,…,п—1) и, если хкк+1 то они переставляются; тем самым наибольший элемент окажется на своем месте в конце массива; затем этот метод применяется ко всем элементам, кроме последнего, и т. д;

. в) сортировка вставками: пусть первые k элементов массива уже упорядочены по неуйлванию; берется (k+1)-й элемент и размещается среди первых k элементов таи, чтобы упорядоченными оказались уже л+1 первых элементов; этот метод применяется при k от 1 до n—1.

8.39* const n=500;

var х:аrrау [l..n] of integer;

p:integer; k:0..n;

Элементы массива х упорядочены по возрастанию. Требуется присвоить переменной k номер элемента массивах, равного числу p, или 0, если такого элемента нет.

Использовать следующий метод двоичного (бинарного) поиска: сравнить p со средним элементом массива (или элементом около середины); если эти числа равны, поиск завершается, если же р меньше среднего элемента, то р надо искать в левой половине массива, а иначе—в правой; к выбранной половине применяется этот же алгоритм.

8.40 const n=80;
type цифра=0..9;

число = расked array [.1.n] of цифра;

var а,Ь,с:число; t:boolean;

Рассматривая а и Ь как последовательности цифр десятичной записи некоторых неотрицательных целых чисел, получить с — аналогичное представление для суммы этих двух чисел. Если в сумме окажется более п цифр, то ее левую цифру отбросить, а переменной t присвоить зна­чение true, иначе переменной t присвоить значение false.

8.41 type элемент =0..99;

множество =расked array [элемент]

of boolean;

var х, у, z:множество; t:boolean;

Рассматривая массивы x, у и z как представления некоторых множеств из объектов типа элемент (x[k]=true, если элемент k принадлежит множеству х, и x[k] = false иначе, и т, п.), реализовать следующие операции над этими массивами-множествами:

а) переменной t присвоить значение true, если множество х является подмножеством множества у, и значение false иначе;

б) z=х∩y—пересечение множеств;

в) z=xy—объединение множеств;

г) z=х\у —разность множеств (в г входят все элементы из х, которые не входят в у).

8.42 const n=20; nl=21; {nl=n+l}

var P,Q:array [O..n] of real;

R:array [O..nl] of real;

a:real;

По P—массиву коэффициентов многочлена

^ P {х)=p0xn+p1xn-1+…+pn-1x+pn

получить:

a)* R — массив коэффициентов многочлена а)Р(х);

б) Q—массив коэффициентов многочлена P(x+a).

8.4. Программа. Дана последовательность из 100 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).

8.44 Программа. Даны координаты п течек на плоскости: x1, y1хn уп (n=20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара точек единственная),

  1. Программа. Даны две последовательности по 30 целых чисел в каждой. Найти наименьшее среди тех чисел первой последовательности, которые не входят во вторую последовательность (считая, что хотя бы одно такое число есть).

  2. Программа. Дана последовательность из 20 целых чисел. Определить количество инверсий в этой последовательности (т. е. таких пар элементов, в которых большее число находится слева от меньшего: xi,>xj при i

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

8.48 Программа. Напечатать заданный текст из 100 литер, удалив из него повторные вхождения каждой литеры.

8.49 Программа. Определить, сколько различных литер входит в заданный текст, содержащий не более 100 литер и оканчивающийся точкой (в сам текст точка не входит).

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

  2. Программа. Подсчитать количество «счастливых» шестизначных автобусных билетов, т. е. таких, в номерах которых сумма трех первых цифр равна сумме трех последних. (Воспользоваться тем, что число «счастливых» билетов равно , где snколичество чисел от 0 до 999, сумма цифр которых равна п.)

  3. Программа. Дано целое k от 2 до 20. Найти коэффициенты k-го многочлена Чебышева. (Замечание: многочлены Чебышева Тn(х) определяются формулами

T0(x)=1; T1(x)=x;

Tп=2xTn-1(x)-Tn-2(x), n=2,3,...)

8.53 Программа. Даны вещественные числа a0, a1...,a15. Найти коэффициенты многочлена (x—a0)(x – a1,)...(х—a15).

  1. Программа. По заданным коэффициентам многочлена 15-й степени и многочлена 8-й степени определить коэффициенты произведения этих многочленов.

  2. Программа. По заданным коэффициентам многочлена ^ Р(х) 10-й степени и многочлена Q(x) 6-й степени определить коэффициенты многочлена P(Q(x)).

1   2   3   4   5   6   7   8



Схожі:

Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания и задания по дисциплине «Статистика. Часть 1» для студентов экономических специальностей всех форм обучения печ
Статистические показатели, Статистическое наблюдение, Сводка и группировка статистических данных, Средние величины Методические указания...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания для самостоятельной подготовки студентов всех специальностей запорожье, зиэит, 2003
Защита населения в чрезвычайных ситуациях мирного и военного времени / Методические указания для самостоятельной работы студентов...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к подготовке и защите магистерских работ по специальности
Методические указания к подготовке и защите магистерских работ по специальности 050206 «Менеджмент внешнеэкономической деятельности»...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодичні вказівки до них. Для студентів ycix спеціальностей ycix форм навчання
Методические указания и задания по курсу «Введение в профессию» для слушателей подготовительных курсов всех форм обучения
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к выполнению курсовой работы по дисциплине «Основы маркетинга» для студентов 2 курса дневной формы обучения
Бобрушева В. В. Методические указания к выполнению курсовой работы по дисциплине «Основы маркетинга» для студентов 2 курса дневной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания и контрольные задания по дисциплине «основы программирования и алгоритмические языки» для студентов заочной формы обучения
Методические указания и контрольные задания по дисциплине «основы программирования и алгоритмические языки» для студентов заочной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания рассмотрены и утверждены на заседании кафедры Технология машиностроения
Технологические методы проектирования и производства заготовок деталей машин для студентов специальностей 09. 0202, 09. 0203 дневной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания по оформлению технической и научной документации для студентов специальности
Автоматизация проектирования компьютерных систем. Методические указания по курсовому проектированию для студентов специальности “Компьютерные...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к практическим занятиям №1÷7 по дисциплине: "Размерный анализ технологических процессов" для студентов специальности 09. 0202
Размерный анализ технологических процессов для студентов специальности 09. 0202 «Технология машиностроения» дневной и заочной форм...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к практическим занятиям и разделу курсового проекта по дисциплинам «Детали машин» и«Прикладная механика» для студентов технических специальностей
«Детали машин» и «Прикладная механика» для студентов технических специальностей дневной и заочной форм обучения/Перераб. В. И. Пахалюк,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи