Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 5

Выбор правильного алгоритма

03.03.2016, 12:37. Показов 790. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поставленная задача выполняется не правильно. В чем же дело...

Дан список группы в 10 человек в виде
ФАМИЛИЯ ИМЯ ОТЧЕСТВО

Определить число встречающихся имен и напечататьв виде:
Сергей - 2
Петр - 1
и т.д.

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
program pp1;
type
t=array[1..47]of char;
tt=array[1..10] of t;
var
A:tt; i,j,k,c,z:byte;
x:char ;
n:integer;
 
begin
assign(input, 'MOY.txt');
reset(input);
assign(output,'MOYres1.txt');
rewrite(output);
for i:=1 to 10 do
begin
for j:=1 to 47 do
begin
   read(A[i,j]);
   write(A[i,j]);
end;
   readln;
   writeln;
end;
 {sortirovka po imenam}
 for i:=1 to 10 do
   for k:=1 to 10 do
     begin
       j:=21;
       while ((A[i,j]=A[k,j]) and (j=30)) do
       j:=j+1;
       if (A[i,j] > A[k,j]) then 
         begin
           for c:=21 to 29 do
             begin
               x:= A [k,c]; 
      A[k,c]:= A[i,c];
               A[i,c]:=x;
             end;
          end;
       end;
 
  writeln;
{vivod imen}
 for i:=1 to 10 do
    begin
      k:=i+1;
       if k < 11 then
         begin  
           j:=21;
           while ((A[i,j]=A[k,j]) and (j=30)) do
             j:=j+1;
             if A[i,j] = A[k,j] then
             k:= k + 1; 
             c:= k - i; 
             for z:=21 to 29 do
                 Write(A[i,z]);   {imy}
                 Write;        {kol}
writeln; 
           i := k-1;
         
           end;
           
      end; 
  
close(input);
close(output);
end.
Вложения
Тип файла: txt MOY.txt (498 байт, 4 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2016, 12:37
Ответы с готовыми решениями:

Необходим выбор правильного ответа. Заранее благодарю
1) var f: file of integer; x, y: integer; Пусть файл f содержит два элемента 3 и 7. Определите, какое значение будет иметь переменная y...

Лагнутость игры в графике и неправильная работа правильного алгоритма
Извините, что задаю две темы в одной, но я думаю, что они связаны между собой неким образом... Весь код представлен в конце темы. ...

Выбор правильного ответа
/*делаю код который мог бы при нажатии на определённый элемент менять его цвет, и тем самым выдавать правильный или не правильный ответ */ ...

9
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.03.2016, 12:53
А почему используете символьные массивы, а не строки? Напишите полное условие задачи.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 5
03.03.2016, 12:57  [ТС]
Условия выполнения первого задания:
1.Все исходные данные вводятся из входного текстового файла
2.В выходной текстовый файл выводится как вся введенная информация , так и полученный результат
3.Задание выполняется в виде 6 различных программ , и только первая программа выполняется без процедур
4.Одна и та же информация во входном файле рассматривается как различная структура данных и вводится по-разному в оперативную память., с целью освоения работы с различными структурами данных. Кроме того, необходимо использовать процедуры с соблюдением требования наибольшей независимости по данным этих процедур друг от друга. Поэтому использование глобальных переменных недопустимо.


Таким образом эти 6 вариантов одного и того же задания предстоит выполнить с использованием:

1.Двумерных символьных массивов, текстовых файлов и без процедур; !!!!!! Данный вариант исполнения.

И потом уже

2.С массивами STRING, процедурами и текстовыми файлами;

3.С массивами RECORD, процедурами, текстовыми и типизированными файлами и процедурами. Типизированный файл формируется в этой же программе из текстового , а затем из него происходит чтение

4.С модулями (варианты 2или 3 переделываются на модульный);
итд итп)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.03.2016, 13:04
Цитата Сообщение от Interceptorious Посмотреть сообщение
Двумерных символьных массивов
В таких задачах обычно указывают структуру строк в файле, например
Фамилия - 20 символов, Имя- 10 символов, Отчество - 15 символов. Между фамилией, именем и отчеством по 1 пробелу.
Тогда можно определить размер матрицы ([кол.строк,47]), позицию имени в строке матрицы ([22..32])
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
03.03.2016, 13:11
Interceptorious,
не вижу условия про текстовый массив и посимвольный ввод/вывод для первого задания...
Кроме того, с символьными массивами можно тоже сильно упростить ввод вывод:
Pascal
1
2
3
4
5
var
  a: array [0..255] of Char;
...
  ReadLn(f,a);
  WriteLn(a);
В этом случае завершением строки является #0, точно поддерживается в TP и FPC.

Добавлено через 4 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
В таких задачах обычно указывают структуру строк в файле
приложенный файл тоже о том свидетельствует, поля в нем выровнены по 20:10:18
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.03.2016, 13:15
Это я вижу, но подобные задачи уже были на форуме и то что я написал всегда указывалось. А вообще мне это и на фиг не надо, и нехрен меня учить.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 5
03.03.2016, 14:21  [ТС]
В моем случае, длинна строки 47. Имя с 21 по 29 символ. Длина Фамилии Имени Отчества строго не регламентирована, соответственно я сделал так, как сделал)

Добавлено через 52 минуты
Puporev, как Вы можете прокомментировать код?

Добавлено через 4 минуты
bormant, что по поводу кода?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
03.03.2016, 14:52
Не знаю как проверяющему, но по мне достаточно:
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
const ns=20; ne=29; n=10;
var
  a: array [0..n,0..48] of Char;
  i, j, k: Integer;
begin
  { чтение }
  Assign(input,'moy.txt'); Reset(input);
  Assign(output,'moyres1.txt'); Rewrite(output);
  for i:=1 to n do ReadLn(a[i]);
  for i:=1 to n do WriteLn(a[i]); WriteLn;
  { сортировка }
  for k:=n downto 2 do for i:=2 to k do begin
    j:=ns; while (j<=ne) and (a[i-1,j]=a[i,j]) do Inc(j);
    if (j<=ne) and (a[i-1,j]>a[i,j]) then begin
      a[0]:=a[i-1]; a[i-1]:=a[i]; a[i]:=a[0];
    end;
  end;
  { подсчет и вывод }
  k:=0;
  for i:=1 to n-1 do begin
    j:=ns; while (j<=ne) and (a[i,j]=a[i+1,j]) do Inc(j);
    if j>ne then Inc(k) else begin
      for j:=ns to ne do Write(a[i,j]); WriteLn(' - ',k+1); k:=0;
    end;
  end;
  for j:=ns to ne do Write(a[n,j]); WriteLn(' - ',k+1);
end.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 5
03.03.2016, 17:53  [ТС]
Вложение 657291Что делать с этим?
Миниатюры
Выбор правильного алгоритма  
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
03.03.2016, 20:34
Сразу начинать тему в соответствующем компилятору разделе?
От посимвольного ввода вам с ним не уйти, заменяйте ReadLn(a[i])/WriteLn(a[i]) на посимвольный ввод/вывод в строках 9-10.

Добавлено через 2 минуты
Вероятно, присваивание массивов в строке 15 ваш транслятор тоже не переварит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2016, 20:34
Помогаю со студенческими работами здесь

Выбор правильного драйвера затвора полевика
У меня тут очередной виток. В устройстве планируется несколько двунаправленных ключей такого вида для коммутации сетевого напряжения: ...

Выбор правильного русла в изучении Delphi
Хочется впитывать в себя знания правильно и эффективно... 5 лет назад я начал заниматься музыкой. Я искал инфу разную, практиковался...

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

Сетевая загрузка. Выбор правильного дистрибутива
Нужно сделать сервер для сетевой загрузки клиентов (PXE boot). Я почти это сделал. Я поднял на Ubuntu Server 14.04 TFTP и DHCP ...

WFA или WPF - выбор более правильного варианта для решения задачи
Доброго времени суток, уважаемые форумчане! Для тех, кто в танке - Windows Form Application или Windows Presentation Foundation. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru