program sinavlar integer::i,j,ios,s integer,parameter::n=100,m=9 integer,dimension(n)::id character(len=20),dimension(n)::name,grade real,dimension(n,m)::not real,dimension(n)::ort character::comment open(unit=1,file="sinavlar.txt",status="old",action="read") open(unit=2,file="sinavlar.dat",status="unknown",action="write") print*,"How many row comments at the beginning of file" read*,s do i=1,s read(unit=1,fmt=*)comment end do s=0 do s=s+1 read(unit=1,fmt="(i10,a20,9f6.1)",iostat=ios)id(s),name(s),not(s,1:9) if(ios<0)then exit endif write(unit=*,fmt="(i3,i10,x,a20,x,9(f6.1,x))")s,id(s),name(s),not(s,1:9) ort(s)=sum(not(s,1:6))/6*.3+not(s,7)*.2+not(s,8)*.1+not(s,9)*.4 if(ort(s)<40)then grade(s)="FF" else if(ort(s)<50)then grade(s)="DD" else if(ort(s)<55)then grade(s)="DC" else if(ort(s)<60)then grade(s)="CC" else if(ort(s)<65)then grade(s)="CB" else if(ort(s)<70)then grade(s)="BB" else if(ort(s)<75)then grade(s)="BA" else grade(s)="AA" endif enddo write(unit=2,fmt="(t3,a,t12,a,t35,a)")"ID","Name Surname","Ave Grade" do i=1,s-1 write(unit=2,fmt="(i10,x,a20,x,f5.1,x,a2)")id(i),name(i),ort(i),trim(grade(i)) enddo end program sinavlar