var a: string;
begin
write ('Введите слово: '); read (a);
writeln ('Именительный падеж: ',copy(a,1,length(a)));
writeln ('Родительный падеж: ',copy(a,1,length(a)-1),'ы');
writeln ('Дательный падеж: ',copy(a,1,length(a)-1),'е');
writeln ('Винительный падеж: ',copy(a,1,length(a)-1),'у');
writeln ('Творительный падеж: ',copy(a,1,length(a)-1),'ой');
writeln ('Предложный падеж: ',copy(a,1,length(a)-1),'е');
end.
Основной момент, это удаление окончания путем копирования слова в строке a начиная с первого символа, до длины слова минус 1 символ.
Объяснение:
Для табулирования любой функции на любом отрезке с любым шагом и любой точностью. При всевозможных значениях "косметика" (которой в предыдущем ответе вообще нет) не нарушается.
procedure Tabulate(a,b,h:real; f:real->real; k:byte:=2; sp:byte:=3);beginvar w := Seq(a, a+Trunc((b-a)/h)*h).Max(x->x.ToString.Length)+k+1;Writeln(' x'.PadLeft(w), ' '*sp, 'y');repeat Writeln(a:w:k, ' '*sp, f(a):0:k); a+=h until a>bend; beginvar a := ReadInteger('Введите a:');Tabulate(1, 10, 1, x->Cos(x+a))end.Пример работы:
Поделитесь своими знаниями, ответьте на вопрос:
Составьте программу для вычисления синуса угла заданного в градусах в паскаль