Цель:Развить навыки обработки строковых данных. Уметь использовать различные методы обработки строк. Получить навыки в организации работы со строковыми переменными: удалением, вставкой, копированием, заменой одной строки на другую и т.д.
Оборудование и материалы:Методическое пособие, ПЭВМ, ручка, карандаш, линейка, ластик, шаблон А4.
Ход работы
Методические рекомендации.
Необходимая информация содержится в лекциях № 19-22.
Решение задач представить в следующем порядке: постановка задачи, построение математической модели, блок-схемы, программный код, тестирование.
Задание для лабораторной работы выбрать согласно варианту по приведённой таблице. Вариант определяется порядковым номером в журнале группы.
Для работы с символьной информацией используют новый тип данных - строковый, именуемый ключевым словом string (или просто строка). Этот тип данных во многом похож на одномерный массив символов (Array[0..N] of char), но длина строки (максимальное количество символов N ограничивается числом 255). Значение N определяется при объявлении типа string (N) и может быть любой константой порядкового типа, но не больше 255. Значение N при объявлении типа string можно не указывать: в этом случае длина строки принимается равной 255 символам.
Строка трактуется как цепочка символов и к любому символу в строке можно обратиться по адресу (индексу), подобно одномерным массивам типа Array[0..N] of char. Самый первый байт в строке, имеющий адрес 0 (ноль), содержит код, равный числу символов в строке (длине строки).
Например, дана строка, имеющая следующее описание:
Var St: string;
Тогда длину строки St можно определить как значение функции
Приложил картинкой, если запутаешься. Если что-то не так работает, я поправлю.
//Pascal
var
a, b, c, d, x1, x2: real;
begin
write('Введите a = '); readln(a);
write('Введите b = '); readln(b);
write('Введите c = '); readln(c);
if ((a = 0) and (b = 0) and (c = 0)) then
writeln('X любое')
else
if a <> 0 then
begin
d := sqr(b) - 4 * a * c;
if (d > 0) then
begin
x1 := (-b+sqrt(d))/(2*a);
x2 := (-b-sqrt(d))/(2*a);
writeln('x1 = ', x1);
writeln('x2 = ', x2);
end
else
if d = 0 then
begin
x1:=-b/(2*a);
x2:=x1;
writeln('x1 = ', x1);
//writeln('x2 = ', x2);
end
else
if d < 0 then
writeln('Корней нет.');
end
else
if (a = 0) and (b = 0) then
writeln('Решений нет.')
else
if (a = 0) then
begin
x1 := (-c)/b;
writeln('x = ', x1);
end;
end.