IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача с модулем и файлом., кому интересно, посмотрите.
Студент
сообщение 27.05.2004 13:23
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


1. Написать модуль, содержащий две процедуры:
1) напечатайте заданную последовательность символов, заменяя символ, задаваемый вводом, на символ предшествующий ему;
2) пусть дан массив из N элементов. Увеличьте его, вставив после минимального элемента максимальный.

2. Пусть дан файл, содержащий анкетные данные студентов (имя, фамилия, возраст, факультет, курс, средний бал успеваемости). Выведите на экран имена и фамилии студентов, средний бал которых выше 3,5.(Не хочет выводить фамилию и имя!!!)
Заранее благодарю!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
BlackShadow
сообщение 27.05.2004 13:55
Сообщение #2


Гость






1)А если строка начинается с #13? Я оставил так - не меняя.
Код

Unit U;

Interface

Type
 TIntArray=Array[1..100] Of Integer;

Function ModStr(s:String):String;
Procedure GrowArray(Var a:TIntArray;Count:Integer);

Implementation

Function ModStr(s:String):String;
Var
 Result:String;
 i:Integer;
Begin
 Result:=s;
 For i:=2 To Length(Result) Do
   If Result[i]=#13 Then
     s[i]:=s[i-1];
 ModStr:=Result
End;

Procedure GrowArray(Var a:TIntArray;Count:Integer);
Var
 i,j,min,max:Integer;
Begin
 min:=a[1];
 max:=a[1];
 j:=1;
 For i:=1 To Count Do
   If min>a[i] Then
   Begin
     j:=i;
     min:=a[i]
   End
   Else
     If max<a[i] Then
       max:=a[i];
 For i:=Count DownTo j+1 Do
   a[i+1]:=a[i];
 a[j+1]:=max
End;

End.

Использование:
Код

Uses U;

Const
 s='test'#13'of'#13'unit';  {Преобразуется в 'testtoffunit'}

Var
 a:TIntArray;
 i:Integer;

Begin
 For i:=1 To 10 Do
   a[i]:=i;
 WriteLn(ModStr(s));
 GrowArray(a,10);
 For i:=1 To 11 Do
   WriteLn(a[i]); {1 10 2 3 4 5 6  7 8 9 10}
End.


2).
Код

Var
 f:Text;
 Name,SurName,Age,Facultet,Kurs:String;
 Avg:Real;
Begin
 Assing(f,'In.Txt');
 Reser(f);
 While Not Eof(f) Do
 Begin
   ReadLn(f,Name);
   ReadLn(f,SurName);
   ReadLn(f,Age);
   ReadLn(f,Facultet);
   ReadLn(f,Kurs);
   ReadLn(f,Avg);
   If Avg>3.5 Then
     WriteLn(SurName,' ',Name)
 End;
 Close(f)
End.

Пример входного файла:
Код

Иван
Иванов
20
ИБ
3
4.2
Пётр
Петров
21
ПМ
4
2.1


Должно работать. Если что - пиши.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 3:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"