1)Составить программу создания двумерного квадратного массива А [1..N,1..N] таким образом, чтобы элементы главной диагонали были равны нулю.
2)Строка S составлена из нескольких предложений, каждое из которых заканчивается точкой, восклицательным или вопросительным знаком. Напишите программу, которая выводит на экран количество предложений в данной прогрмме.
3)Задан двумерный массив из N*N элементов; составьте программу, которая добавляет к каждому элементу строки значение элемента главной диагонали соответствующей строки.
4)Составить программу нахождения суммы всех натуральных чисел меньших N и кратных K.
5)Составить программу определения самого длинного предложения заданного текста. Предложения заканчиваются точкой.
Дополнительное образование
По информатике решите задачи на языке паскаль
1) program name;
uses crt;
cоnst N=10; {вместо 10 введи размер своего массива}
var a:array [1..N,1..N];
i,j:integer;
begin clrscr;
for i:=1 to N do
for j:=1 to N do begin
a[i,j]:=random (100); if i=j then a[i,j]:=0; {когда i=j - это все элементы главной диагонали}
writeln ('a[',i,',',j,']=',a[i,j]) ;
end;
readkey;
end.
2)program name;
uses crt;
var s:string;
k:integer;
begin clrscr;
k:=0;
readln(s);
for i:=1 to length(s) do {length(s) - функция, определяет сколько символов в строке}
if (s='!') or (s= '?') or (s= '.') then k:=k+1;
writeln (k);
readkey;
end.
3) program name;
uses crt;
cоnst N=10; {вместо 10 введи размер своего массива}
var a:array [1..N,1..N];
i,j:integer;
begin clrscr;
for i:=1 to N do
for j:=1 to N do begin
a[i,j]:=random (100);
writeln ('a[',i,',',j,']=',a[i,j]) ;
end;
{здесь мы заполнили массив случайными числами и вывели его на экран}
for i:=1 to N do
for j:=1 to N do
if i<>j then a[i,j]:=a[i,j]+a[i,i];
{теперь еще раз пробегаем по массиву... если i=j, то есть элементы главной диагонали мы не трогаем, если нет (<>), то прибавляем к каждому элементу значение элемента главной диагонали соответствующей строки }
writeln ('poluchivshiisya massiv');
for i:=1 to N do
for j:=1 to N do
writeln ('a[',i,',',j,']=',a[i,j]) ;
{выводим получившийся массив}
readkey;
end.
4) program name;
uses crt;
cоnst N=100;
K=3 {вводишь нужные значения сюда, вместо 3 и 100}
var ;
i,s:integer;
begin clrscr;
s:=0;
for i:=1 to N-1 do
if i mod k =0 then s:=s+i; (mod- остаток от деления. например 3 mod 2 =1, 4 mod 2=0, 15 mod 4= 3; в данном случае mod=0, т. е. мы ищем числа, которые нацело делятся на K}
writeln (s);
readkey;
end.
(в этой задаче я предполагаю, что предложение заканчивается точкой, потом идет пробел и начинается следующее предложение)
5) program name;
uses crt;
var с: char;
k,max:integer;
begin clrscr;
k:=1;max:=0;
REPEAT
read(c);
while c<>'.' do begin
read(c); k:=k+1; end;
if k>max then max:=k;
k:=1;
read (c); read(c);
UNTIL c=' ';
witeln (max);
readkey;
end.
В пятом логика такая.
while c<>'.' do begin
read(c); k:=k+1; end; - это касается отдельных предложений. Мы читаем символы до точки и запоминаем их количество в k. Потом сверяем с максимумом, если k>max, то перезаписываем max, потом в k возвращаем 1. Потом читаем еще один символ - это должен быть пробел между предложениями, я выше про это писал, потом еще один, если он пробел, значит все, текст кончился, выводим значение max. Если не пробел- то мы прочитали первый символ следующего предложения, его мы уже посчитали, так как в k поставили единичку. Заново со следующими предложениями.
Кажется, правильно я тебе написал, скорее всего без ошибок, правда паскаль два года назад учил, может чего по невнимательности пропустил.... Если чего не понятно - пиши либо тут в комментах, либо на мыло, отвечу через день точно. Ну а вообще задачи несложные, типовые, с массивами, строками, последняя подумать надо, читай книжки, их по паскалю море.. .
Давай, удачи!!!)) буду рад если помог)
uses crt;
cоnst N=10; {вместо 10 введи размер своего массива}
var a:array [1..N,1..N];
i,j:integer;
begin clrscr;
for i:=1 to N do
for j:=1 to N do begin
a[i,j]:=random (100); if i=j then a[i,j]:=0; {когда i=j - это все элементы главной диагонали}
writeln ('a[',i,',',j,']=',a[i,j]) ;
end;
readkey;
end.
2)program name;
uses crt;
var s:string;
k:integer;
begin clrscr;
k:=0;
readln(s);
for i:=1 to length(s) do {length(s) - функция, определяет сколько символов в строке}
if (s='!') or (s= '?') or (s= '.') then k:=k+1;
writeln (k);
readkey;
end.
3) program name;
uses crt;
cоnst N=10; {вместо 10 введи размер своего массива}
var a:array [1..N,1..N];
i,j:integer;
begin clrscr;
for i:=1 to N do
for j:=1 to N do begin
a[i,j]:=random (100);
writeln ('a[',i,',',j,']=',a[i,j]) ;
end;
{здесь мы заполнили массив случайными числами и вывели его на экран}
for i:=1 to N do
for j:=1 to N do
if i<>j then a[i,j]:=a[i,j]+a[i,i];
{теперь еще раз пробегаем по массиву... если i=j, то есть элементы главной диагонали мы не трогаем, если нет (<>), то прибавляем к каждому элементу значение элемента главной диагонали соответствующей строки }
writeln ('poluchivshiisya massiv');
for i:=1 to N do
for j:=1 to N do
writeln ('a[',i,',',j,']=',a[i,j]) ;
{выводим получившийся массив}
readkey;
end.
4) program name;
uses crt;
cоnst N=100;
K=3 {вводишь нужные значения сюда, вместо 3 и 100}
var ;
i,s:integer;
begin clrscr;
s:=0;
for i:=1 to N-1 do
if i mod k =0 then s:=s+i; (mod- остаток от деления. например 3 mod 2 =1, 4 mod 2=0, 15 mod 4= 3; в данном случае mod=0, т. е. мы ищем числа, которые нацело делятся на K}
writeln (s);
readkey;
end.
(в этой задаче я предполагаю, что предложение заканчивается точкой, потом идет пробел и начинается следующее предложение)
5) program name;
uses crt;
var с: char;
k,max:integer;
begin clrscr;
k:=1;max:=0;
REPEAT
read(c);
while c<>'.' do begin
read(c); k:=k+1; end;
if k>max then max:=k;
k:=1;
read (c); read(c);
UNTIL c=' ';
witeln (max);
readkey;
end.
В пятом логика такая.
while c<>'.' do begin
read(c); k:=k+1; end; - это касается отдельных предложений. Мы читаем символы до точки и запоминаем их количество в k. Потом сверяем с максимумом, если k>max, то перезаписываем max, потом в k возвращаем 1. Потом читаем еще один символ - это должен быть пробел между предложениями, я выше про это писал, потом еще один, если он пробел, значит все, текст кончился, выводим значение max. Если не пробел- то мы прочитали первый символ следующего предложения, его мы уже посчитали, так как в k поставили единичку. Заново со следующими предложениями.
Кажется, правильно я тебе написал, скорее всего без ошибок, правда паскаль два года назад учил, может чего по невнимательности пропустил.... Если чего не понятно - пиши либо тут в комментах, либо на мыло, отвечу через день точно. Ну а вообще задачи несложные, типовые, с массивами, строками, последняя подумать надо, читай книжки, их по паскалю море.. .
Давай, удачи!!!)) буду рад если помог)
Похожие вопросы
- как решить задачу B4 по алгебре?
- Контрольная работа решить задачу коши для дифференциальных уравнений
- Как можно поскорее и качественнее подготовиться к олимпиаде по информатике, а именно программирование, язык Pascal
- Помоги пожалуйста решить задачу!
- решите задачу очень интересная!
- как решить задачу ?? (геом. переобразов-я в пространстве)
- Решите задачу
- помогите решить задачу по органической химии
- Помогите пожалуйста решить задачу по физике 10 класс.
- Помогите решить задачу (Физика)