Заполните таблицу, напишите действия указанных операторов:
№ Функция(оператор) Назначение функции(оператора)
1. MID$(S$,N1,N2)
2. LEN(‘STROKA’)
3. IF…THEN…ELSE
4. FOR ..TO…STEP…NEXT
5. INPUT Y$
6. PRINT “PECHAT’”
7. N=INSTR(1,Y$,B$)
2. Задание: Исследуйте функцию INSTR на примере программы:
REM
Y$=”БИНАРНЫЕ ЧАСЫ»: B$=”A”
N=INSTR(1,Y$,B$)
PRINT N
Какие необходимо сделать изменения в программе, чтобы определить номер позиции второй буквы
«А»?...Третьей? (ответ запишите в тетрадь
3. Программа автоматического подсчета количества букв «А» в строке. Задание: По блок-схеме
напишите программу на языке программирования QBASIC. Напишите пояснения, что выполняет
каждый элемент блок-схемы.
НЕТ ДА
НАЧАЛО
ВВЕДИТЕ S$
J=1 TO N STEP 1
Y$=mid$(s$,j,1)
Вывод К
Конец
N=LEN(S$): B$=”A”:K=0
IF Y$=B$
Y$=B$
y$=B$
yY$=B$
К=К+1
Домашнее задание:
1. Выучить операторы работы со строками.
2. Составить программу, которая подсчитывает количество слов во введеной с клавиатуры строке.
Составить программу движения двух спутников (Фобос и Деймос) вокруг Марса. (в графическом режиме, спутники и планету необходимо нарисовать схематично в виде окружностей
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(){
int n;
cin >> n;
vector<vector<int>> a(n, vector<int> (n));
vector<int> x(2*n);
map<int,int> m;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
cin >> a[i][j];
int cur1 = 1, cur2 = 0, elem = 0, cnt = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(i == j){
x[cur1] = a[i][j];
cur1 += 2;
m[a[i][j]]++;
if(m[a[i][j]] > cnt){
cnt = m[a[i][j]];
elem = a[i][j];
}
}
if(i + j == n - 1){
x[cur2] = a[i][j];
cur2 += 2;
m[a[i][j]]++;
if(m[a[i][j]] > cnt){
cnt = m[a[i][j]];
elem = a[i][j];
}
}
}
}
for(auto &i : x) cout << i << " ";
cout << "\nThe most popular element is : " << elem;
}
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Rewrite(f,'books.dat');
Writeln('Ввод данных по книгам');
var s1,s2:string;
var i1,i2:integer;
var book:tBook;
repeat
s1:=ReadlnString('Автор или * для окончания ввода:');
if s1<>'*' then begin
s2:=ReadlnString('Название книги:');
i1:=ReadlnInteger('Количество страниц:');
i2:=ReadlnInteger('Год издания:');
(book.author,book.naim,book.pages,book.godizd):=(s1,s2,i1,i2);
Write(f,book)
end
until s1='*';
Writeln('*** Ввод завершен ***');
f.Close
end.
Тестовое решение
Ввод данных по книгам
Автор или * для окончания ввода: Жюль Верн
Название книги: 80 тысяч километров под водой
Количество страниц: 573
Год издания: 1951
Автор или * для окончания ввода: Сергей Лукьяненко
Название книги: Дозор
Количество страниц: 934
Год издания: 2004
Автор или * для окончания ввода: Жюль Верн
Название книги: Властелин мира
Количество страниц: 104
Год издания: 2011
Автор или * для окончания ввода: *
*** Ввод завершен ***
2. Программа для выборки
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Reset(f,'books.dat');
var s:=ReadlnString('Автор книги:');
var y:=Readinteger('Год издания, не ранее:');
var k:=0;
var book:tBook;
while not f.Eof do begin
Read(f,book);
if (book.author=s) and (book.godizd>=y) then begin
Writeln(book);
Inc(k)
end;
end;
if k=0 then Writeln('Таких книг не найдено');
f.Close
end.
Тестовое решение
Автор книги: Жюль Верн
Год издания, не ранее: 2005
(Жюль Верн,Властелин мира,104,2011)