Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача с модулем и файлом.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Студент
1. Написать модуль, содержащий две процедуры:
1) напечатайте заданную последовательность символов, заменяя символ, задаваемый вводом, на символ предшествующий ему;
2) пусть дан массив из N элементов. Увеличьте его, вставив после минимального элемента максимальный.

2. Пусть дан файл, содержащий анкетные данные студентов (имя, фамилия, возраст, факультет, курс, средний бал успеваемости). Выведите на экран имена и фамилии студентов, средний бал которых выше 3,5.(Не хочет выводить фамилию и имя!!!)
Заранее благодарю!!!
BlackShadow
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


Должно работать. Если что - пиши.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.