0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 17
1

Найдите всех преподавателей, которые ведут занятия только у студентов со специализацией "механика"

28.05.2015, 16:31. Показов 943. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
НА факультете существует две специальности :прикладная математика(ноиер групп с 1-ого по 6-ой) и механика (группа 7).сведения о преподавателях имеет следующий вид:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
const
кол_воПреподавателей=100;
type
Группа=1..7;
Группа_курса=array[Группа] of boolean;
Группа_факультета=array[1..5] of Группа_курса;
Преподаватель=record 
            ФИО:string;
            Специализация: (математика,механика);
            {обучаемые преподавателем группы}
            Список_групп:Группы_факультета
       end;
Все преподаватели=array[1..Кол_воПреподавателей] of Преподаватель;

Задание.
Найдите всех преподавателей ,которые ведут занятия только у студентов со специализацией "механика";
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2015, 16:31
Ответы с готовыми решениями:

Запрос на подсчет количества : список преподавателей, которые ведут практические занятия
Здравствуйте. Помогите написать запрос: Для заданной кафедры напечатать список преподавателей,...

Напечатать сведения о преподавателях, которые ведут занятия в определенную дату во всех аудиториях
Добрый вечер! Нужно разработать программу, используя однонаправленные и двунаправленные списки. ...

Вывести всех студентов/преподавателей по алфавиту
Написать программу списка студентов университета. Должны быть раелизованы следуйщие функции,...

Посчитать всех студентов/преподавателей на каждой из конференций
Есть организатор конференций и он генерирует событие, сообщая какая это конференция: студенческая...

2
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 10
23.06.2016, 17:25 2
Добрый день. Alex55, вы решили своё задание? у вас есть ответ? Просто мне сейчас нужно решить эту же задачку.
0
Модератор
9847 / 5214 / 3303
Регистрация: 17.08.2012
Сообщений: 15,941
26.06.2016, 20:45 3
nimfari, последний раз пользователь Alex55 посещал форум 22.12.2015 в 19:27, и я сильно сомневаюсь, что он Вам ответит.

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

Ну да ладно, попробую уточнить задание. Пусть информация о преподавателях вводится с клавиатуры (бедный Вы, несчастный), а результат выводится на дисплей. Это - самое простое решение, главный недостаток его - все данные будут потеряны, как только программа завершится, а информацию для отчётности придётся каким-либо образом копировать с экрана.

И на кой ляд нужна специализация преподавателя? Что, математик не может преподавать математику только в группах со специальностью "механика"?

Итак.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const
  kol_vo = 100;
type
  group = 1..7;
  course = array [group] of boolean;
  faculty = array [1..5] of course;
  teacher = record
              full_name: string [100];
              specialization: (math, mech);
              {обучаемые преподавателем группы}
              list_of_group: faculty
            end;
  all_teachers = array[1..kol_vo] of teacher;
var
  i, j, k, t: integer;
  a_t: all_teachers;
  no_err, c, f: boolean;
begin
  for i := 1 to kol_vo do with a_t[i] do
    begin
      writeln('Введите информацию о ', i, ' преподавателе:');
      for j := 1 to 5 do
        for k := 1 to 7 do list_of_group[j][k] := false;
      writeln('Введите фамилию, имя и отчество преподавателя:');
      readln(full_name);
      repeat
        write('Введите специализацию преподавателя (1 - математика, 2 - механика): ');
        readln(t);
      until t in [1, 2];
      if t = 1
        then specialization := math
        else specialization := mech;
      writeln('Введите для каждого факультета номера обучаемых групп (1..7) через пробел');
      for j := 1 to 5 do
        begin
          no_err := true;
          repeat
            write('Факультет ', j, ': ');
            while not eoln do
              begin
                read(t);
                no_err := t in [1..7];
                if no_err
                  then list_of_group[j][t] := true
                  else break
              end;
            readln;
            if not no_err then writeln('Ошибка, повторите ввод.')
          until no_err;
        end
    end;
  writeln('Преподаватели, ведущие занятия только у студентов со специализацией "механика":');
  no_err := false;
  for i := 1 to kol_vo do with a_t[i] do
    begin
      c := false;
      for j := 1 to 5 do
        for k := 1 to 6 do c := c or list_of_group[j][k];
      f := false;
      for j := 1 to 5 do f := f or list_of_group[j][7];
      if not c and f
        then begin
          no_err := true;
          if specialization = math
            then write('Математик ')
            else write('Механик ');
          writeln(full_name)
        end
    end;
  if not no_err then writeln('Не найдены.');
  writeln('НАЖМИ <Enter> ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ И ПОТЕРИ ВСЕХ ДАННЫХ, НЕСЧАСТНЫЙ...');
  readln
end.
Если будут проблемы с русским текстом - переведите все русские сообщения на английский, либо транслитерируйте русский текст.

Для тестирования программы логично сделать количество преподавателей малость поменьше, например
Pascal
2
  kol_vo = 3;
0
26.06.2016, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2016, 20:45
Помогаю со студенческими работами здесь

Вывести всех студентов, которые получили только «4» и/или «5»
Помогите, пожалуйста. Давно не писал на прологе, все забыл. Оценки сессии даны следующим образом...

Подсчитать количество студентов группы, которые учатся только на 5. Предусмотреть случай, что таких студентов нет
Подсчитать количество студентов группы, которые учатся только на 5. Предусмотреть случай, что таких...

Найдите только те символы слов, которые встречаются в обоих словах только один раз
Даны два слова. Найдите только те символы слов, которые встречаются в обоих словах только один раз....

Даны два слова. Найдите только те символы слов, которые встречаются в обоих словах только один раз
даны два слова.найдите только те символы слов, которые встречаются в обоих словах только один раз

Расписание занятий преподавателей и студентов
Приложение должно осуществлять следующие основные функции: – добавление нового расписания;...

Программа занесения преподавателей и студентов в список
Есть код. В этом коде список выводится один (общий), через ShowMessage. type TForm1 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru