Вычислите значение логической формулы: для какого из имён ложно высказывание: не (первая буква гласная) или не (последняя буква согласная)? 1) эдуард 2) ангелина 3) карина 4) никон до завтра
НЕ (первая буква гласная) ИЛИ НЕ (последняя буква согласная) 1) НЕ (Э гласная) ИЛИ НЕ (Д согласная) ⇒ НЕ Истина ИЛИ НЕ Истина ⇒ Ложь ИЛИ Ложь ⇒ Ложь 2) НЕ (А гласная) ИЛИ НЕ (А согласная) ⇒ НЕ Истина ИЛИ НЕ Ложь ⇒ Ложь ИЛИ Истина ⇒ Истина 3) НЕ (К гласная) ИЛИ НЕ (А согласная) ⇒ НЕ Ложь ИЛИ НЕ Ложь ⇒ Истина ИЛИ Истина ⇒ Истина 4) НЕ (Н гласная) ИЛИ НЕ (Н согласная) ⇒ НЕ Ложь ИЛИ НЕ Истина ⇒ Истина ИЛИ Ложь ⇒ Истина ответ: 1) Эдуард
Общее решение, позволяющее удалять из строк любой "мусор"
// PascalABC.Net 3.0, сборка 1066 procedure CheckString(var s:string; var n:integer); var i:integer; begin i:=Length(s); while i>0 do begin if not(s[i] in ['a'..'z']) then Delete(s,i,1); Dec(i) end; n:=Length(s) end;
var s1,s2:string; i,p,n1,n2:integer; begin Write('Введите первую строку: '); Readln(s1); CheckString(s1,n1); if n1=0 then Writeln('Введенная строка не содержит допустимых символов') else begin Write('Введите вторую строку: '); Readln(s2); CheckString(s2,n2); if n2=0 then Writeln('Введенная строка не содержит допустимых символов') else { теперь обе строки содержат только маленькие латинские буквы } if n1=n2 then begin for i:=1 to n1 do begin p:=Pos(s1[i],s2); if p=0 then Break else Delete(s2,p,1) end; if Length(s2)=0 then Writeln('Решение имеется') else Writeln('Решения нет') end else Writeln('Решения нет'); end end.
Тестовое решение: Введите первую строку: this is my own deal! Введите вторую строку: Тест: *is now=l2ead my sthi? Решение имеется
Также имеется современное решение, которому пока что в школах не учат: // PascalABC.Net 3.0, сборка 1066 begin var s1:=ReadString('Введите первую строку: ').Where(x->x in ['a'..'z']); if s1.Count=0 then Writeln('Введенная строка не содержит допустимых символов') else begin var s2:=ReadString('Введите вторую строку: ').Where(x->x in ['a'..'z']); if s2.Count=0 then Writeln('Введенная строка не содержит допустимых символов') else if s1.Except(s2).Count>0 then Writeln('Решения нет') else Writeln('Решение имеется') end end.
// PascalABC.Net 3.0, версия 1066 const mm=50; nn=50; var n,m,i,j,k1,k2,p:integer; s1,s2,s3:longint; a:array[1..mm,1..nn] of integer; begin Write('Число строк и столбцов массива: '); Read(m,n); Write('Значение p: '); Read(p); Writeln('*** Сгенерированный массив ***'); Randomize; s1:=0; s2:=0; s3:=0; k1:=0; k2:=0; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=Random(101)-50; Write(a[i,j]:4); if a[i,j]>30 then s1:=s1+a[i,j]; if Odd(a[i,j]) then Inc(k1) else begin s2:=s2+a[i,j]; Inc(k2) end; if i+j=p then s3:=s3+a[i,j] end; Writeln end; Writeln('Сумма элементов массива, больших 30: ',s1); Writeln('Количество нечетных элементов массива: ',k1); Writeln('Среднее арифметическое четных элементов массива: ',s2/k2); Writeln('Сумма элементов массива c суммой индексов ',p,': ',s3) end.
1) НЕ (Э гласная) ИЛИ НЕ (Д согласная) ⇒ НЕ Истина ИЛИ НЕ Истина ⇒
Ложь ИЛИ Ложь ⇒ Ложь
2) НЕ (А гласная) ИЛИ НЕ (А согласная) ⇒ НЕ Истина ИЛИ НЕ Ложь ⇒
Ложь ИЛИ Истина ⇒ Истина
3) НЕ (К гласная) ИЛИ НЕ (А согласная) ⇒ НЕ Ложь ИЛИ НЕ Ложь ⇒
Истина ИЛИ Истина ⇒ Истина
4) НЕ (Н гласная) ИЛИ НЕ (Н согласная) ⇒ НЕ Ложь ИЛИ НЕ Истина ⇒
Истина ИЛИ Ложь ⇒ Истина
ответ: 1) Эдуард