Консультация онлайн # 161199

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Ильин Дмитрий
Дата: 23.02.2009, 16:13 Консультация неактивна
Поступило ответов: 2
Уважаемые эксперты! помогите пожалуйста решить следующие задачи через модуль.
1. заданы координаты 3-х вершин (х1,у1) (х2,у2) (х3,у3). найти его периметр и площадь.
2. ввести последовательность символов предшествующих символу * и выяснить сколько среди них букв S,A,R. все буквы S заменить на точку.
3. при поступлении в вуз абитуриенты, получившие 2 на первом экзамене, ко второму не допускаются. в массиве А[10] записаны оценки экзаменующихся, полученные на первом экзамене. подсчитать сколько человек не допущено ко второму экзамену.
ЗАРАНЕЕ БЛАГОДАРЕН!!!

Ответ # 1, Абельхарисов Руслан/Marked One (Посетитель)

Здравствуйте, Ильин Дмитрий!
Задача №3:
Код
const
  N = 10;

var
  {Массив оценок}
  a: array [1..N] of Integer;
  i, count: integer;

begin
  count := 0;
  {получаем оценки}
  write('введите результаты первого экзамена: ');
  for i := 1 to N do
    readln(a[i]);
  {перебираем массив, если оценка два или меньше, то увеличиваем кол-во недопущеных студентов на 1}
  for i := 1 to N do
    if a[i] <= 2 then
      inc(count);
  Write('Ответ: ', count);
  readln;
end.

Удачи!!!

Абельхарисов Руслан/Marked One

Посетитель
23.02.2009, 19:11
Нет оценки ответа

Ответ # 2, Шевченко Дмитрий (Посетитель)

Здравствуйте, Ильин Дмитрий!

Решение первых двух задач в приложении.
В первой проверяем существование треугольника с заданными вершинами (каждая сторона меньше суммы двух других) и далее считаем его периметр и площадь (по формуле Герона: URL >>)

Во второй задаче считываем введённый символ, если это A или R - просто считаем их количество и выводим на экран, чтобы пользователь видел что он нажал, а если это S - заменяем на точку, считаем количество и выводим на экран сразу точку).
Если надо сначала сохранить то что ввели в строку, а потом уже считать количество букв и заменять S на точку, то вторая задача выглядит так:

Код
uses crt;
var c:char;
  s:String;
  i:byte;
  KolA,KolR,KolS:Word;
begin
  ClrScr;
  KolS:=0;
  KolA:=0;
  KolR:=0;
  s:='';
  repeat{пока не ввели *}
    c:=ReadKey;{считываем введённый символ}
    s:=s+c;
    Write(c);
    IF c = #13 then{Если нажали Enter - переводим курсор на следующую строку}
      WriteLn;
  until c = '*';
  For i:= 1 to length(s) do
    case s[i] of
      's','S': begin{если это буква S - заменяем на точку}
        s[i]:='.';
        inc(kolS);{считаем количество}
      end;
      'a','A': inc(KolA);{если буква A или R - считаем кол-во}
      'r','R': inc(KolR);
    end;
  WriteLn;
  WriteLn('Изменённая строка: ');
  WriteLn(s);{выводим ответ}
  WriteLn('Количество букв A: ',KolA);
  WriteLn('Количество букв R: ',KolR);
  WriteLn('Количество букв S: ',KolS);
  ReadLn;
end.


Успехов! smile

С уважением, Дмитрий.

Приложение:


Шевченко Дмитрий

Посетитель
23.02.2009, 23:26
Нет оценки ответа

Мини-форум консультации # 161199

Вадим Исаев ака sir Henry

Мастер-Эксперт

ID: 425

177581

= общий =    24.02.2009, 09:55
Цитата: Ильин Дмитрий

1. заданы координаты 3-х вершин (х1,у1) (х2,у2) (х3,у3). найти его периметр и площадь.


"Его" - это кого? smile
=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.