Что будет выведено на экран после выполнения этой программы s 123456789 delete s 1 2

На сколько метров севернее будет находиться дрон от начальной точки полёта?

В программируемый модуль беспилотного летательного аппарата (дрона) была ошибочно введена программа полёта СЮЗВВССЗЮЮВВСВВВЮЗЗС­ ВС. В программе: С – полёт на север на расстояние 30 м, Ю – полёт на юг на расстояние 30 м, З – полёт на запад на расстояние 30 м, В – полёт на восток на расстояние 30 м. На сколько метров севернее будет находиться дрон от начальной точки полёта по этой программе?

комментировать
в избранное бонус up —>
vdtes­ t [26.5K]
3 дня назад

Проследим как меняется положение дрона относительно исходной точки после выполнения каждого шага программы.

Вся программа содержит 22 шага:

  1. С: севернее на 30 м
  2. Ю: исходное положение
  3. З: западнее на 30 м
  4. В: исходное положение
  5. В: восточнее на 30 м
  6. С: севернее на 30 м,восточнее на 30 м
  7. С: севернее на 60 м,восточнее на 30 м
  8. З: севернее на 60 м
  9. Ю: севернее на 30 м
  10. Ю: исходное положение
  11. В: восточнее на 30 м
  12. В: восточнее на 60 м
  13. С: севернее на 30 м,восточнее на 60 м
  14. В: севернее на 30 м,восточнее на 90 м
  15. В: севернее на 30 м,восточнее на 120 м
  16. В: севернее на 30 м,восточнее на 150 м
  17. Ю: восточнее на 150 м
  18. З: восточнее на 120 м
  19. З: восточнее на 90 м
  20. С: севернее на 30 м,восточнее на 90 м
  21. В: севернее на 30 м,восточнее на 120 м
  22. С: севернее на 60 м,восточнее на 120 м

После анализа выполнения этой программы видно что положение к северу от начальной точки можно определить по формуле:

Как писать и читать код в проекте VisualNEO Win (NeoBook)

(Nс-Nю)×Ш

Nс количество шагов на север

Nю количество шагов на юг

Ответ после выполнения программы СЮЗВВССЗЮЮВВСВВВЮЗЗС­ ­ВС дрон будет находиться на 60 метров севернее начальной точки полёта.

Источник: www.bolshoyvopros.ru

Символьные строки

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

Символьная строка — это последовательность символов.

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

• работать с целой символьной строкой как с единым объектом;
• использовать строки переменной длины.

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

Используя дополнительные источники, выясните, что означают слова «литера» и «литерный».

Используя дополнительные источники, выясните значение английского слова string.

Вот пример объявления строки:

18 Цикл while Python

лит s var s: string;

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

s:=’Вася пошёл гулять’ s:=’Вася пошёл гулять’;

или оператора ввода с клавиатуры:

Обратите внимание, что при вводе строк в Паскале нужно использовать оператор readln (англ. read line — читать до конца строки) вместо read.

Существуют стандартные функции, которые определяют длину строки (количество символов в ней). В алгоритмическом языке такая функция называется длин, а в Паскале — length (в переводе с англ. — длина). В этом примере в целочисленную переменную п записывается длина строки s:

n:=длин (s) n:=length (s);

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

Сравнение строк

Строки можно сравнивать между собой так же, как числа. Например, можно проверить равенство двух строк:

если s=’sEzAm’ то

вывод ‘Слушаюсь и повинуюсь!’

иначе

вывод ‘Пароль неправильный’

все

Та же программа на языке Паскаль:

if s=’sEzAm’ then

write(‘Слушаюсь и повинуюсь!’)

else

write ( ‘Пароль неправильный’);

Запишите в тетради, как нужно объявить в этой программе переменную s.

Можно также определить, какая из двух строк больше, какая — меньше. Если строки состоят только из русских или только из латинских букв, то меньше будет та строка, которая идёт раньше в алфавитном порядке. Например, слово «паровоз» будет меньше, чем слово «пароход»: они отличаются в пятой букве и «в» < «х». Это можно проверить экспериментально, например, с помощью такой программы:

Символьные строки

Но откуда компьютер «знает», что такое алфавитный порядок? Оказывается, при сравнении используются коды символов (вспомните материал учебника для 8 класса). В современных кодировках и русские, и английские буквы расположены в алфавитном порядке, т. е. код буквы «в» меньше, чем код буквы «х».

С помощью программы сравните пары слов и сделайте выводы:

пар — парк Пар — пар steam — Пар

Steam — steam 5Steam — Steam

He используя программу, сравните пары слов:

парта — парк ПАрта — Парк СПАМ — Spam

ПОЧТА — spam П04та — ПОЧта почТА — Post

Посимвольная обработка строк

Для того чтобы работать с отдельными символами строки, к ним обращаются так же, как к элементам массива: в квадратных скобках записывают номер нужного символа. Например, так можно изменить четвёртый символ строки на «а» (конечно, длина строки должна быть не менее четырёх символов):

Читайте также:
Crunchyroll что это за программа

Приведём программу, которая вводит строку с клавиатуры, заменяет в ней все буквы «э» на буквы «е» и выводит полученную строку на экран:

Символьные строки

Символьные строки

мы перебираем все символы строки с первого до последнего, и если очередной символ — буква «э», делаем замену:

Символьные строки

Вспомните, чем отличается запись s=’e’ от записи s: = ‘e’.

Запишите решение этой задачи, используя цикл пока (while).

Операции со строками

Оператор + используется для «сложения» (объединения, сцепления) строк, эта операция иногда называется конкатенацией. Например:

Здесь и далее считаем, что в программе объявлены строковые (литерные) переменные s, s1 и s2.

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

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

Для того чтобы выделить часть строки (подстроку), в алгоритмическом языке применяется операция получения среза (англ. slicing). Например, s[3:7] означает «символы строки s с 3-го по 7-й включительно». В Паскале для этого используется функция сору, она принимает три параметра: имя строки, номер начального символа и количество символов. Оба следующих фрагмента копируют в строку s1 символы строки s с 3-го по 7-й (всего 5 символов):

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

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

s:=’123456789′ s: = ‘123456789 ‘ ;

удалить (s, 3, 6) delete (s, 3, 6) ;

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

При вставке символов процедуре передают вставляемый фрагмент, имя исходной строки и номер символа, с которого начинается вставка:

s:= 11234567891 s:= ‘123456789’;

вставить(1 ABC 1, s, 3) insert(1 ABC 1, s, 3);

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

Используя только операции выделения подстроки и «сложения» строк, постройте из строки

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

Приведите несколько способов построения строки

s: = ‘Семёнов Андрей’

Какой из них лучше? Как вы сравнивали эти способы?

Поиск в символьных строках

Существуют функции для поиска подстроки (и отдельного символа) в строке. Им нужно передать образец для поиска и строку, в которой надо искать:

Символьные строки

Функция позиция возвращает целое число — номер символа, с которого начинается образец (буква «с») в строке s. Если образец встречается в строке несколько раз, функция находит первый из них. В языке Паскаль функция pos (от англ. position — позиция, расположение) работает точно так же.

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

Как можно найти вторую букву «с» с начала строки?

Вводится строка, в которой сначала записана фамилия человека, а затем через пробел — его имя, например ‘Семёнов Андрей’.

Запишите операторы, которые позволяют:

а) найти номер пробела, разделяющего фамилию и имя, и записать его в переменную р;
б) выделить из строки фамилию и записать её в переменную fam;
в) выделить из строки имя и записать его в переменную name;
г) приписать перед фамилией первую букву имени, точку и пробел.

Преобразования «строка ? число»

Иногда символьная строка, которая передаётся программе, содержит запись числа. С таким значением нельзя выполнять арифметические операции, потому что это символы, а не число.

Чему будут равны значения переменных п и s после выполнения этих команд? Как нужно объявить эти переменные в программе?

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

лит_в_цел — переводит строку в целое число;

лит_в_вещ — переводит строку в вещественное число.

Разберём такой пример:

лит s, цел N, лог ОК

N:= лит_в_цел(s, OK) | N = 123

если не ОК то

все

Строку не всегда можно преобразовать в число (например, если в ней содержатся буквы). Поэтому функция лит_в_цел использует второй параметр — логическую переменную ОК. Функция записывает в эту переменную логическое значение да («истина»), если операция закончилась успешно, и нет (ложь), если произошла ошибка.

Изучите приведённый фрагмент программы и выясните, как объявляется логическая переменная.

А вот пример использования функции лит_в_вещ:

лит s, вещ X, лог ОК

Х:=лит_в_вещ(s, ОК) | Х= 123.456

если не ОК то

все

Какие из этих строк можно преобразовать в целое число, какие — в вещественное?
а) ’45’;
б) ‘5р.’;
в) ‘14.5’;
г) ’14;5′;
д) ‘tu154’;
е) ’543.0’;
ж) ’(30)’.

Обратное преобразование (из числа в строку) возможно всегда:

s:=вещ_в_лит(X) I s=’123.456′

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

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

Читайте также:
Программа 1с рарус что это

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

Преобразование числа в строку выполняет процедура str:

По умолчанию вещественные числа записываются в научном формате (‘1.234560Е+002’ означает 1,23456•10 2 ). В последней строке примера используется форматный вывод: запись Х:10:3 означает «вывести число в 10 позициях с тремя знаками в дробной части».

Выводы

• Символьная строка — это последовательность символов.
• Длина строки — это количество символов в строке.
• Подстрока — это часть символьной строки.
• При обращении к отдельному символу строки его номер записывают в квадратных скобках.
• Знак « + » при работе со строками означает объединение строк.
• Для обработки символьных строк используют вспомогательные алгоритмы стандартной библиотеки — процедуры и функции. Процедура изменяет переданную ей строку, а функция возвращает результат — новое значение, не изменяя исходную строку.
• Функции поиска подстроки возвращают номер символа, с которого начинается подстрока, или 0 в случае неудачи.
• Строку можно преобразовать в число для того, чтобы затем выполнять с ним вычисления. Число можно преобразовать в символьную строку.

Нарисуйте в тетради интеллект-карту этого параграфа.

Вопросы и задания

1. Во многих языках программирования можно использовать массивы символов, т. е. массивы, каждый элемент которых — один символ. Чем отличается строка от массива символов?

2. Чем отличается действие оператора + для чисел и для символьных строк?

3. Можно ли обойтись без стандартной функции для вставки подстроки? Если да, то чем её можно заменить?

4. Как определить, что при поиске в строке образец не найден?

5. Как бы вы искали первый символ «с» с конца строки?

6. Выполните по указанию учителя задания в рабочей тетради.

§19. Символьные строки.

Источник: murnik.ru

Тип данных. Строка символов (string)

Программирование на языке Python (§ 54 - § 61)

Доступ:
В Паскаль имеется простой доступ к отдельным
символам строковой переменной: i-й символ
переменной st записывается как st[i].
Например, если
st := ‘Строка’, то
st[1] — это ‘С’,
st[2] — это ‘т’,
st[3] — ‘р’ и так далее.

6.

Операции над строковыми типами данных
Операция сцепления(+) – объединение строк.
ПРИМЕР 1: Например:
a := ‘Turbo’;
b := ‘Pascal’;
c := a + b;
Операции отношения(=, , =, <>) – сравнение
выполняется слева направо до первого не совпадающего
символа; большим значением считается то, в котором
1-ый несовпадающий символ имеет больший номер в
алфавите.
Пример 2:
‘абзац’ ‘depend’>=’ dependence’ | FALSE

7.

Функции и процедуры, выполняемые
над строковыми типами данных
(s, st — строки; poz — позиция; n – количество; x — число)
Length(s) – функция целого типа, которая возвращает
значение длины строки s.
ПРИМЕР 3:
n:= length(‘День Победы!’);
Ответ: n=12
Delete(s, poz, n) – процедура удаления n символов в
строке s, начиная с позиции poz.
ПРИМЕР 4: s:= ’Миротворец’; delete(s,4,7);
Ответ: ’Мир’
UpCase(s) – позволяет преобразовать символ из
строчного в заглавный (рус. буквы не обрабатываются)
ПРИМЕР 5: s:= ’computer’
For i:=1 to length(s) do
s[i]:=UpCase (s[i]);

8.

Функции и процедуры, выполняемые
над строковыми типами данных
Insert(st,s,poz) — процедура вставки строки st в строку s,
начиная с позиции poz. s:=’Лев Толстой’;
ПРИМЕР 6: insert(‘Николаевич ’,s,5);
Ответ: s=’Лев Николаевич Толстой’
Copy(s,poz,n) — функция строкового типа, которая возвращает значение подстроки длиной n, начиная с позиции
poz в исходной строке s. st:=copy(’Миротворец’,5,6);
ПРИМЕР 7: Ответ: st=’ творец’
Pos(st,s) — функция целого типа, которая обнаруживает в
строке s первое появление подстроки st и возвращает
номер позиции 1-ого символа подстроки st в строке s; если
подстрока st не содержится в строке s, то результатом
будет 0.
n:=pos(‘рот’,’Миротворец’);
ПРИМЕР 8: Ответ: n=3

9.

Задача 1: Преобразуйте текст следующим
образом: после всех пробелов символы заменить
на заглавные и удалить 1-ые 3 символа.
Program P1;
Var s:string; i: integer;
begin
write(‘введите строку’);
read(s);
for i:=1 to n do length(s)-1 do
If s[i]=‘ ‘ then s[i+1] := UpCase (s[i+1]);
Delete (s,1,3)
write(s);
end.

10.

Задача 2 : Что выводит на экран следующая
программа?
Program P2;
Var s:string; i, k: integer;
begin
write(‘введите строку’);
read(s);
for i:=1 to n do length(s) do
If s[i]=‘а‘ then
begin
k:=k+1;
s[i] := UpCase (s[i]);
end;
write(s,k);
end.
Ответ:
Подсчитывает в строке
символов количество букв
«а» и заменяет их на
заглавные

11.

Задача 3 : Получить из слова «математика»
слово «тематика».
(2-мя способами: с помощью Delete и Copy
program P3a;
Var s: string;
begin
s:=’математика’,
s:=copy(s, 3, 8);
write(s);
end.
program P3b;
Var s: string;
begin
s:=’математика’,
Delete (s, 1, 2);
write(s);
end.

12.

Задача 4: Получить из слова «Позитроника»
слово «трон».
program P4;
var
s:string;
begin
s:=’Позитроника’;
delete(s,1,4);
delete(s,5,3);
write(s);
end.

13.

Домашнее задание:
Считать с клавиатуры строку, найти ее
длину, вывести на экран. Найти сколько
символов ‘f’ содержится в строке, вывести
ответ.

14.

Отметьте все правильные объявления
символьных строк.
1.
2.
3.
4.
5.
var s: string;
Var string: s;
Var s, s1, s2: array[1..10] of char;
var s1, s2: integer;
var s , s1, s2: string;

15.

Отметьте все правильные объявления
символьных строк.
1.
2.
3.
4.
5.
var s: string;
var string: s;
var s, s1, s2: array[1..10] of char;
Var s1, s2: integer;
var s, s1, s2: string;

Читайте также:
Клинкер что это за программа

16.

Что будет выведено на экран после
выполнения программы?
s := ‘123’;
s := s + ‘0’ + s;
writeln ( s );
Ответ: 1230123

17.

Что будет выведено на экран после
выполнения этой программы?
s := ‘12345’;
n := Length(s) + Length(‘456’);
writeln ( n );
Ответ: 8

18.

Что будет выведено на экран после
выполнения программы?
s := ‘123456789’;
s1 := ‘abcdef’;
s := Copy(s,5,2) + ‘0’ + Copy(s1,3,3);
writeln ( s );
Ответ: 56осde

19.

Что будет выведено на экран после
выполнения этой программы?
s := ‘123456’;
q := ‘abc’;
Delete ( s, 2, 3 );
Insert ( s, q, 2 );
writeln ( q );
Ответ: a156bc

20.

Задачи:
1. В строке символов подсчитать количество букв «а».
2. В строке символов подсчитать количество слогов
«ДА».
3. В строке символов заменить слоги «ДА» на «NU».
4. Из слова «жемчужина» составить слово «муж».
5. Даны 2 строки. Выяснить, совпадают ли их длины.
6. Дано слово. Поменять местами первую и
последнюю букву.

Источник: ppt-online.org

Метод replace() в Python
Метод replace() возвращает копию строки, в которой все вхождения подстроки заменяются другой подстрокой.
Синтаксис : str.replace (old, new , count)
Метод replace() в Python может принимать максимум 3 параметра:
old ‒ старая подстрока, которую нужно заменить;
new ‒ новая подстрока, которая заменит старую подстроку;
count (необязательно) ‒ сколько раз вы хотите заменить старую подстроку новой.
Примечание: Если число не указано, метод заменяет все вхождения старой подстроки новой.
Для решения заданий ЕГЭ 12 есть стандартная программа.
Примеры заданий.
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 88)
ИНАЧЕ заменить (8888, 22)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.

s = ‘8’ *70
while ( ‘2222’ in s) or ( ‘8888’ in s):
if ‘2222’ in s:
s = s.replace( ‘2222’ , ’88’ , 1)
else :
s = s.replace( ‘8888’ , ’22’ , 1)
print (s)
Формируется строка, состоящая из 70 восьмерок.
Цикл с ветвлением переписываем на язык Питон.
Третий параметр в функции replace обозначает, что замену нужно производить один раз.

Ответ: 22

№133
Дана программа для исполнителя Редактор:

НАЧАЛО
ПОКА нашлось (18) ИЛИ нашлось (288) ИЛИ нашлось (3888)
ЕСЛИ нашлось (18)
ТО заменить (18, 2)
ИНАЧЕ
ЕСЛИ нашлось (288)
ТО заменить (288, 3)
ИНАЧЕ заменить (3888, 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

Какая строка получится в результате применения этой программы к строке, состоящей из цифры 1, за которой следуют 80 идущих подряд цифр 8? В ответе запишите полученную строку.

s = ‘1’ + ‘8’ *80
while ( ’18’ in s) or ( ‘288’ in s) or ( ‘3888’ in s):
if ’18’ in s:
s = s.replace( ’18’ , ‘2’ , 1)
else :
if ‘288’ in s:
s = s.replace( ‘288’ , ‘3’ , 1)
else :
s = s.replace( ‘3888’ , ‘1’ , 1)
print (s)
Пояснение: s = ‘1’ + ‘8’ *80
Здесь знак «+» обозначает сцепление, т.е. к единице справа допишется еще восемьдесят восьмерок.

Ответ: 28

№180
Дана программа для исполнителя Редактор:

ПОКА нашлось (555) ИЛИ нашлось (333)
ЕСЛИ нашлось (333)
ТО заменить (333, 5)
ИНАЧЕ заменить (555, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА

Дана строка, состоящая из 500 цифр 5. Сколько троек было удалено за время обработки строки по этой программе?

s = ‘5’ *500
k=0
while ( ‘555’ in s) or ( ‘333’ in s):
if ‘333’ in s:
s = s.replace( ‘333’ , ‘5’ , 1)
k=k+3
else :
s = s.replace( ‘555’ , ‘3’ , 1)
print ( k )
Переменная «к» считает сколько раз удалили/заменили тройки. В ответе выводим переменную «к».

Ответ: 186

№190 Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (888) ИЛИ нашлось (77)
ЕСЛИ нашлось (888)
ТО заменить (888, 8777)
ИНАЧЕ заменить (77,8)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 100 идущих подряд цифр 8.
В ответе через запятую запишите количество цифр 8 и цифр 7, которое будет в конечной строке.
s = ‘8’ *100
k=0
m=0
while ( ‘888’ in s) or ( ’77’ in s):
if ‘888’ in s:
s = s.replace( ‘888’ , ‘8777’ , 1)
else :
s = s.replace( ’77’ , ‘8’ , 1)
print (s)
for i in range (0,len(s)):
if s[i]==’8’: k=k+1
if s[i]==’7’: m=m+1
print (k,m)

Переменная «к» считает количество «8», переменная « m » считает количество «7».

print ( s ) – для интереса смотрю, какая строка останется после замен .

for I in range (0,len(s)):
if s[i]==’8’: k=k+1
if s[i]==’7’: m=m+1
далее циклом прохожу по строке и считаю «8» и «7».

Ответ: 67, 33

№176 Дана программа для исполнителя Редактор:
ПОКА нашлось (555) ИЛИ нашлось (333)
ЕСЛИ нашлось (555)
ТО заменить (555, 3)
ИНАЧЕ заменить (333, 5)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
Дана строка, состоящая из 200 цифр 5. Чему равна сумма цифр строки, полученной после обработки по этой программе?
s = ‘5’ *200
k=0
m=0
while ( ‘555’ in s) or ( ‘333’ in s):
if ‘555’ in s:
s = s.replace( ‘555’ , ‘3’ , 1)
else :
s = s.replace( ‘333’ , ‘5’ , 1)

for i in range (0,len(s)):
if s[i]== ‘ 5 ‘ : k=k+1
if s[i]== ‘ 3 ‘ : m=m+1
print (k*5+m*3)

Решение оформила, как у предыдущей задачи. Зная количество пятерок и троек в конечной строке сразу вывела ответ print ( k *5+ m *3)

Ответ 16

Источник: infformmatikaa.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru