1. Скорость передачи данных по некоторому каналу связи равна 32000 бит/c. Передача файла по этому каналу связи заняла 8с. Определите размер файла в байтах.
Напишу "современный" вариант решения. Хотя бы для того, чтобы показать, насколько современные решения задач в том же паскале ушли вперед по сравнению с тем временем когда придумывались эти задачи...
// PascalABC.NET 3.0, сборка 1088 begin var s:=ReadString('Введите строку: '); var MySet:=s.Where(x->x in ['a'..'z']).Distinct; Writeln(MySet) end.
Тестовое решение: Введите строку: this is an example text. [t,h,i,s,a,n,e,x,m,p,l]
А вот если воспользоваться "традиционной" работой с множеством, исходный порядок следования символов будет нарушен:
// PascalABC.NET 3.0, сборка 1088 var MySet:set of char;
procedure AddToSet(s:string; var pSet:set of char); begin foreach var c in s do if c in ['a'..'z'] then Include(pSet,c) end;
begin var s:=ReadString('Введите строку: '); AddToSet(s,MySet); Writeln(MySet) end.
Тестовое решение: Введите строку: this is an example text. {n,e,m,l,t,s,a,i,h,p,x}
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main(int argc, char** argv) {
int i=0,j=0,l=0;
char st[200];
char ch=' ';
cout<<" string: "; gets(st); cout<<endl;
string mins;
int mn,bgmn,emn,tek;
mn=strlen(st); bgmn=0;
while (true) {
while ((st[j]!=ch) and (j<strlen(st))) j++;
tek=j-l;
for (int i=l; i<j; i++)
{ if (tek<mn) { mn=tek; bgmn=l; emn=j-1; } }
if (j==strlen(st)) break;
j++; l=j;
}
//запись строки
for (int i=bgmn; i<=emn; i++) mins=mins+st[i];
cout<<"short word: "<<mins<<endl<<endl;
system("pause");
return(0);
}