Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 31
1

Программа работает неправильно. Можете исправить ошибку? Справка о междугородном телефонном разговоре...

10.02.2012, 18:54. Показов 3708. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного разговора, которой является максимальным по продолжительности среди срочных разговоров за указанный месяц.
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
74
75
76
77
78
79
80
81
82
83
84
program lab_10_41;
type phone=record
     nomer:integer;
     day:integer;
     mesyac:integer;
     god:integer;
     chas:integer;
     minuta:integer;
     kod:integer;
     othernomer:integer;
     time:integer;
     categoriya:integer;
     tarif:real;
     end;
var a:array [1..20] of phone;
  m,max,k,i,n:integer;
  b:string;
begin
writeln('Введите количество разговоров:');
readln(n);
for i:= 1 to n do
   begin
   a[i].nomer:=111111+random(888888);
   a[i].day:=1+random(30);
   a[i].mesyac:=1+random(11);
   a[i].god:=2000+random(12);
   a[i].chas:=random(23);
   a[i].minuta:=random(59);
   a[i].kod:=111+random(888);
   a[i].othernomer:=1111111+random(8888888);
   a[i].time:=1+random(99);
   a[i].tarif:=0.5+random(5);
   a[i].categoriya:=1+random(2);
   case a[i].categoriya of
   1:b:='Срочный';
   2:b:='Обычный';
   end;
  end;
  for i:=1 to n do begin
                   write('Номер телефона абонента: ');
                   writeln(a[i].nomer);
                   write('Дата: ');
                   writeln(a[i].day,'.',a[i].mesyac,'.',a[i].god);
                   write('Время: ');
                   writeln(a[i].chas,':',a[i].minuta);
                   write('Код города: ');
                   writeln(a[i].kod);
                   write('Номер телефона в другом городе: ');
                   writeln(a[i].othernomer);
                   write('Продолжительность разговора в минутах: ');
                   writeln(a[i].time,' минут(ы)');
                   write('Категория разговора: Срочный=1, Обычный=2. ');
                   writeln(a[i].categoriya);
                   write('Стоимость 1 минуты: ');
                   writeln(a[i].tarif);
                   writeln;
                   end;
                   
max:=0;
writeln ('Введите месяц: ');
readln(m);
for i:=1 to n do
if (m=a[i].mesyac) and (a[i].time>max) and (a[i].categoriya=1) then
                   begin
                   k:=i;
                   max:=a[i].time;
                   end;
writeln('Дата самого длинного срочного телефонного разговора за указанный месяц: ');
write('Номер телефона абонента: ');
writeln(a[i].nomer);
write('Дата: ');
writeln(a[i].day,'.',a[i].mesyac,'.',a[i].god);
write('Время: ');
writeln(a[i].chas,':',a[i].minuta);
write('Код города: ');
writeln(a[i].kod);
write('Номер телефона в другом городе: ');
writeln(a[i].othernomer);
write('Продолжительность разговора в минутах: ');
writeln(a[i].time,' минут(ы)');
write('Стоимость 1 минуты: ');
writeln(a[i].tarif);
writeln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2012, 18:54
Ответы с готовыми решениями:

Сведения о международном телефонном разговоре
Сведения о международном телефонном разговоре состоят из даты, названия города, продолжительности...

Программа неправильно работает. Найдите ошибку
#include <stdlib.h> #include <stdio.h> int main() { int grade; int aCount=0, bCount=0, ...

Программа работает неправильно. Цикл не выполняется. Подскажите ошибку
Здравствуйте. Подскажите, пожалуйста, почему неправильно выполняется программа( не выполняется...

Условие символьной строки, неправильно работает программа. Надо найти ошибку.
#include <stdio.h> #include <conio.h> #include <string.h> int main(void) { char *hC; ...

1
Вирусоборец
13100 / 7251 / 1535
Регистрация: 06.09.2009
Сообщений: 26,482
11.02.2012, 00:45 2
Ошибка была в конце программы (если рассматривать Ваш вариант).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
writeln(a[k].nomer);
write('Дата: ');
writeln(a[k].day,'.',a[k].mesyac,'.',a[k].god);
write('Время: ');
writeln(a[k].chas,':',a[k].minuta);
write('Код города: ');
writeln(a[k].kod);
write('Номер телефона в другом городе: ');
writeln(a[k].othernomer);
write('Продолжительность разговора в минутах: ');
writeln(a[k].time,' минут(ы)');
write('Стоимость 1 минуты: ');
writeln(a[k].tarif);
Добавлено через 2 часа 55 минут
Да, и вот еще что.

Возможен вариант, пусть и чисто теоретический, когда все сгенерированные программой категории разговора = 2. Тогда условие
Код
if (m=a[i].mesyac) and (a[i].time>max) and (a[i].categoriya=1)
всегда будет ложным и значение k останется равным 0. Попытка обратиться к элементу массива с индексом 0 приведет к ошибке
1
11.02.2012, 00:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2012, 00:45
Помогаю со студенческими работами здесь

не работает программа, не знаю как исправить ошибку
https://drive.google.com/file/d/1qw-8ybQUCLDXjjyR3Wi9SJ3bJDBjOU0u/view вот задание и функция:...

Программа работает, но вычисляет не верно, не могу исправить ошибку...
Огромное спасибо всем, кто возьмётся исправить... Программа работает, но вычисляет почему-то не...

Исправить ошибку в коде (Программа не корректно работает с ру языком)
всем привет программа работает на eng языке а вот на Русском проблемы она оставляет одну букву хотя...

Можете помочь дописать программу, неправильно работает.
Вариант 8 Даны целые массивы А, B и значения R и F. Каждый массив пpеобpазовать по пpавилу:...


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

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