Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2007, 20:56   #1
velgelmina
Пользователь
 
Регистрация: 14.05.2007
Сообщений: 11
Восклицание Проверьте ошибки пожалуйста в задачах.

я уже задавала вопрос по этим задачам. Пожалуйста. помогите исправить ошибки в имеющихся текстах программ.
Дан список случайных целых чисел. Переверните список т.е. расставьте все числа в обратном порядке. Подсчитайте средне арифметическое его элементов. Создайте два новых списка в одном из которых запишите все элементы > 5, в другой все остальные элементы исходного списка.(всего в списке 15 чисел).
Программа вычисляет среднее арифметическое.Выводит в обратном порядке.Еще она должна создавать два новых списка. Создание новых списков описано. А как их вывести на экран?Мне сказали что через nil. Но я не знаю как. Исправьте пожалуйста.
Код:
program sp; uses crt;
type a=^spisok;
spisok=record
z:integer;
next:a;
end;
var i:byte; t:array[1..5] of spisok; q,p,r,r1:a;
st:integer;
sr:real;
s,l:integer;
begin clrscr;
p:=nil;
writeln('vvesti 4isla');
for i:=1 to 5 do begin
readln(st);
new(q);
q^.z:=st;
{new(q);}
q^.next:=p;
p:=q;
s:=s+st; end;
sr:=s/5;
writeln('srednee atifmeti4eskoe= ',sr:3:5);
while q<>nil do begin
writeln(q^.z);
q:=q^.next; end;
 
q:=p;
r:=nil;
r1:=nil;
q:=nil;
 
for i:=1 to 5 do begin
l:=q^.z;
if (l>5) then begin r^.z:=l;
r^.next:=r
end else begin r1^.z:=l;
r1:=a;
while r1<>nil do begin
writeln(r1.z);
r1:=r1^.next;end;end;
end;
q^.next:=q
end;
while q<>nil do begin
writeln(q^.z);
q:=q^.next; end;
end.
2.Текстовый файл содержит данные по отпечаткам пальцев известных преступников. Разработать программу, которая печатает информацию обо всех преступниках, чьи отпечатки совпадают с отпечатками найденными на месте преступления. Отпечаток пальцев, найденный на месте преступления вводится с клавиатуры. Отпечаток пальцев может быть представлен кодом из 6 символов и 6 вещественных чисел, полученных в результате измерений отпечаткаю Отпечатки пальцев считаются идентичными, если 5 из 6 символов совпадают и множества действительных чисел совпадают.
В общем создается текстовый файл с названием file1. В него записывается например
ivanov
1234567890abcdefg
petrov
0987654321hijklmnop
это отпечатки и фамилия. Когда я ввожу тот отпечаток что уже имеется в txt файле он выводит фамилию все как положено. Но когда я ввожу точно такой же или другой(не обязательно такой как в txt файле) отпечаток он не сравнивает. Как это исправить? И еще, когда совсем нет совпадений, он должен вывести: "такого отпечатка нет". Но у меня не получается это сделать. Помогите пожалуйста.
Код:
Program CY;
uses crt;
var f:text;
s,x:string;
i,j,k,b,z,c,n:integer;
a:array[1..32] of string;
q,o:array[1..32] of integer;
W,P:set of char;
begin
clrscr;
p:=['a'..'z'];
w:=['0'..'9'];
assign(f,'FILE1.txt');
reset(f);
for i:=1 to 20 do begin
readln(f,s);
[i]a:=s;
{writeln(s)};
end;
Writeln('Vvedite otpechatok palca naidenogo na mecte prectypleniya X');
readln(x);
[i]for i:=1 to 32 do q:=0;
for i:=1 to 32 do begin
if ((i mod 2) =0) then begin
[i]if length(a)=length(x) then begin
n:=length(x);
for j:=1 to n do begin
[i]if (a[i,j]=x[j]) and (a[i,j] in p) then q[i]:=q+1;
[i]if (a[i,j]=x[j]) and (a[i,j] in W) then O[i]:=o+1;
end;end;end;end;
for i:=1 to 32 do begin
[i]if (q[i]+o[i]=n) or (n<q[i]+o+4) then
writeln(a[i-1]);
end;
readln;
end.
помогите исправить ошибки пожалуйста.

Последний раз редактировалось velgelmina; 08.06.2007 в 20:59.
velgelmina вне форума Ответить с цитированием
Старый 08.06.2007, 23:59   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
А как их вывести на экран?Мне сказали что через nil. Но я не знаю как.

Код:
while q<>nil do begin
writeln(q^.z);
q:=q^.next; end;
А это чем не вывод?
Carbon вне форума Ответить с цитированием
Старый 09.06.2007, 13:29   #3
velgelmina
Пользователь
 
Регистрация: 14.05.2007
Сообщений: 11
По умолчанию

это он выводит в обратном порядке.
А вот как эти два списка вывести? в которых >5 и <5? я пробовала аналогично писать вывод для этих списков, но все равно не выводит=(
velgelmina вне форума Ответить с цитированием
Старый 09.06.2007, 22:10   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
это он выводит в обратном порядке.
q сначала должен указывать на головной элемент списка, если порядок обратный.

Цитата:
А вот как эти два списка вывести? в которых >5 и <5? я пробовала аналогично писать вывод для этих списков, но все равно не выводит=(
Продемонстрируй код вывода, а я скажу, что в нём не так.
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте задачку {StaN} Паскаль, Turbo Pascal, PascalABC.NET 3 04.07.2008 13:20
Проверьте код ! Михаил Юрьевич Общие вопросы Delphi 7 08.02.2008 09:32
Проверьте пожалуйста код forumu Помощь студентам 1 27.12.2007 21:49
Проверьте пожалуйста текст программы Dim@ Помощь студентам 1 26.12.2007 19:53
Программирование процедур в задачах обработки текста Numi_Pumi Помощь студентам 5 20.12.2007 17:04