Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


Рекомендуемые сообщения

Антохен:

Ну хорошо, посчитали частоты появления букв в тексте. Пожалуйста:

var a:array[char]of word; f:text; c:char; n:word; beginAssign(f,'test.txt');Reset(f); while not eof(f) do begin Read(f,c);inc(a[c]);inc(n) end;for c:=#32 to #255 do Write(c,':',a[c]:3,'   '); WriteLn; ReadLnend.

Программка считает и даже выводит частоты появления символов в любом тексте, содержащемся в файле test.txt (выводит она пары символ:частота_его_появления_в_тексте, для большей ясности распечатки вывод сделан только для неслужебных символов - начиная с пробела). Частоты получаются в массиве a, например, в a['x'] содержится количество букв x в тексте. При желании можно поделить все элементы массива на количество символов в тексте, которое у нас в накопилось в переменной n, получив относительные частоты появления букв.

Точно то же самое можно сделать и со вторым файлом, и со сколькими угодно.

Если есть желание, можем объединить частоты букв, которые нам хочется, например, в русскоязычном файле твердый знак с мягким. Можем объединить и строчные буквы с их прописными вариантами, просто просуммировав попарно соответствующие частоты. Всё можем. А зачем всё это, непонятно. Задание-то бессмысленное.

Требуется посчитать количество всех символов в первом и во втором, и заменить второй на первый. И замененный вариант сохранить в другом файле
Бессмыслица. Переименование файлов. Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Помогите!

1. Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами (т.е. те элементы массива, которые стоят на четных местах, поменяйте с элементами, которые стоят на нечетных местах).

2. Даны два массива, упорядоченных по возростанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возростанию.

3. Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать:

Элементы обоих массивов;

Общие элементы двух массивов;

Элементы массива A, которые не включаются в B;

Элементы массива B, которые не включаются в A;

Элементы массивов A и B, коотрые не являются общими дял них (то есть объединение результатов двух предыдущих вариантов).

Надо решить с помощью указателей.

Ссылка на комментарий
Поделиться на другие сайты

Charlie Rat:

Ну как, с башнями Ханоя справился?

Простейшее решение, с выдачей только указаний, как перемещать кольца, такое:

procedure Hanoi(n:byte; a,b,c:char);  begin if n<>0 then begin Hanoi(n-1,a,c,b); write(a,'->',b,'	'); Hanoi(n-1,c,b,a) end end;var n:byte; begin Write('N=');ReadLn(n); Hanoi(n,'A','C','B'); WriteLn; ReadLn end.

Можно добавить в вывод информацию о высоте башен, тогда программа будет выглядеть так:

var l:array[1..3]of byte; n:integer; procedure Out; begin WriteLn(l[1]:4,l[2]:4,l[3]:4) end;procedure Hanoi(n:byte; a,b,c:byte);   begin if n<>0 then begin Hanoi(n-1,a,c,b); dec(l[a]);inc(l[b]); 	  write(a,'->',b);Out; Hanoi(n-1,c,b,a) end end;begin   Write('N=');ReadLn(n); l[1]:=n;l[2]:=0;l[3]:=0; Write('	');Out;   Hanoi(n,1,3,2); WriteLn; ReadLn end.

Можно показывать и размещение колец на башнях после каждого шага, тогда програма будет выглядеть несколько сложнее:

type t=array[byte]of byte;var l:array[1..3]of t; n:integer;const s:string='ABCDEFGHIJKLMNOPQRSTUVWXYZ'; d=ord(' ');procedure Out; var i:byte;  begin write('  ',l[1,0]:3,l[2,0]:3,l[3,0]:3,'	');  for i:=1 to 3 do write(string(l[i]),' ':20-l[i,0]); WriteLn end;procedure Hanoi(n:byte; a,b,c:byte);  begin if n<>0 then begin Hanoi(n-1,a,c,b);inc(l[b,0]);l[b,l[b,0]]:=l[a,l[a,0]];	  l[a,l[a,0]]:=d;dec(l[a,0]);write(a,'->',b);Out; Hanoi(n-1,c,b,a) end end;begin Write('N=');ReadLn(N); l[1]:=t(s);l[1,0]:=N;l[2,0]:=0;l[3,0]:=0; WriteLn(N:9,0:3,0:3,'	',string(l[1]),' ':20-l[1,0]); Hanoi(N,1,3,2); WriteLn;Readln end.

А по поводу последнего задания - указатели тут как корове седло. Формально, конечно, можно ими воспользоваться, например, для первой задачи можно настрочить что-нибудь вроде

type ta=array[1..99]of integer;var PA:^ta; A:ta; i,j,p,m:integer;beginPA:=@A; Write('m='); ReadLn(m);for i:=1 to m do begin Write('A[',i:2,']='); ReadLn(PA^[i]) end;for i:=1 to m div 2 do begin j:=2*i; p:=PA^[j-1];PA^[j-1]:=PA^[j];PA^[j]:=p end;for i:=1 to m do Write(PA^[i]:8); ReadLnend.

Условие выполнено, мы решили задачу, используя указатели, но выглядит это как сложение чисел с обязательным использованием умножения. 2+3=2*1+3*1 - да, мы сложили числа и использовали умножение, но где смысл? :g:

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте! Горю по информатике, не успеваю сделать все лабы!

Прошу помощи в написании задачи на Паскале ( желательно с блок-схемой ). Буду весьма благодарен!

А вот и само задания ( обведено красным ) и пример решения "подобного" задания...

4d1f1effc09f4dc525.jpg 5932b3e6ab900cf42c.jpg

Ссылка на комментарий
Поделиться на другие сайты

Хиросима:

Если записывать условие не на спине скачущей лошади :g: , оно будет выглядеть так:

Получить таблицу пар значений y=f(x) для -4<=x<=1 с шагом h=0,1 и распечатать эту таблицу.

f(x)=arcctg(x), x<=-1 ; arcsin(x), -1<x<0 ; arccos(x), 0<=x<=1/2 ; log 2(45), 1/2<x

function f(x:real):real;begin if x<=-1 then f:=pi/2-arctan(x)else if x<0 then f:=arctan(x/sqrt(1-sqr(x)))   else if x<=0.5 then f:=pi/2-arctan(x/sqrt(1-sqr(x)))	  else f:=ln(45)/ln(2)end;var x,y:array[0..50]of real; xb,xe,h:real; i,n:integer;begin xb:=-4; xe:=1; h:=0.1; n:=round((xe-xb)/h); for i:=0 to n do begin x[i]:=xb+i*h; y[i]:=f(x[i]) end; for i:=0 to n do Write(x[i]:8:1,y[i]:8:3); WriteLn; ReadLnend. 

Насчет блок-схем читай в этом топике в этом посте.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Люди, срочно требуется помощь...До пятницы нужны две программы....

1. программа, которая сможет записать три коэффициента a b с в файл, считать их и Решить квадратное уравнение....

2. программа, которая считает кол-во символов в txt файле и выводит 10 наиболее встречающихся в порядке убывания (возрастания)

От этого зависит очень многое для меня....

Ссылка на комментарий
Поделиться на другие сайты

Dady:

var F:file of Real; a,b,c,d,x1,x2:Real; beginAssign(F,'FFF'); Rewrite(F);Write('a=');ReadLn(a); Write('b=');ReadLn(b); Write('c=');ReadLn©; Write(F,a,b,c); Close (F);Reset(F); Read(F,a,b,c);d:=sqr(b)-4*a*c;if d<0 then WriteLn('No real solution') else   begin   d:=sqrt(d); x1:=(-b+d)/(2*a); x2:=(-b-d)/(2*a);  if abs(x1)>abs(x2) then x2:=c/a/x1 else x1:=c/a/x2;  WriteLn('x1=',x1,'	 x2=',x2)  end;ReadLnend.

Примечание: оператор if(abs(x1)... служит для повышения точности вычисления корней

type r=record c:char; n:word end;var f:text;  a:array[byte]of r; t:r; c:char; s:string; i,j,n:word;beginWrite('Name of the file: '); ReadLn(s);for i:=0 to 255 do begin a[i].c:=chr(i); a[i].n:=0 end;Assign(f,s); Reset(f); n:=0;while not eof(f) do begin Read(f,c); inc(a[ord©].n); inc(n) end;for i:=0 to 9 do for j:=0 to 254-i do if a[j].n>a[j+1].n thenbegin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;WriteLn('N=',n);for i:=255 downto 246 do WriteLn(a[i].c,' :',a[i].n:5);ReadLnend.

Примечание: оператор for i:=0 to 9 ... - от нуля только до 9, так как достаточно отсортировать только десять значений

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!!!

Учусь заочно, в семемтре 2-3 лекции читают, все остальное для самостоятельного изучения.

Помогите пожалуйста решить несколько задач на Pascal. ;)

1. Создать файл и записать в него n первых членов последовательности Фибоначчи. Вывести на экран все компоненты файла с порядковым номером, не кратным 3.

2. Имеется два файла с числами. Получить новый файл, каждый элемент которого равен сумме соответствующих компонентов заданных файлов (количество компонентов в исходных файлах одинаковое).

3. Дан текстовый файл. Найти самую короткую строку и ее длину.

Ссылка на комментарий
Поделиться на другие сайты

pooint:

1.

var F:file of LongInt; b,c:LongInt; i,n:Integer;beginAssign(F,'MyFile'); Rewrite(F);Write('n(1..40)='); ReadLn(n); b:=0; c:=1;for i:=1 to n do begin Write(F,c); c:=b+c; b:=c-b end;Close(F); Reset(F); i:=0;while not eof(F) do begin Read(F,c); inc(i); if i mod 3 <>0 then Write(c:10) end;ReadLnend.

2.

var F,G,H:file of Integer; a,b,c:Integer;beginAssign(F,'File1'); Assign(G,'File2'); Assign(H,'File3');Reset(F); Reset(G); Rewrite(H);while not eof(F) do begin Read(F,a); Read(G,b); c:=a+b; Write(H,c) end;end. 

3.

var F:text; s,c:string;beginAssign(F,'file.txt'); Reset(F); FillChar(s,255,' ');while not eof(F) do begin ReadLn(F,c); if length©<length(s) then s:=c end;WriteLn(length(s)); WriteLn(s); ReadLnend.
Ссылка на комментарий
Поделиться на другие сайты

pooint:

1.

var F:file of LongInt; b,c:LongInt; i,n:Integer;beginAssign(F,'MyFile'); Rewrite(F);Write('n(1..40)='); ReadLn(n); b:=0; c:=1;for i:=1 to n do begin Write(F,c); c:=b+c; b:=c-b end;Close(F); Reset(F); i:=0;while not eof(F) do begin Read(F,c); inc(i); if i mod 3 <>0 then Write(c:10) end;ReadLnend.

2.

var F,G,H:file of Integer; a,b,c:Integer;beginAssign(F,'File1'); Assign(G,'File2'); Assign(H,'File3');Reset(F); Reset(G); Rewrite(H);while not eof(F) do begin Read(F,a); Read(G,b); c:=a+b; Write(H,c) end;end. 

3.

var F:text; s,c:string;beginAssign(F,'file.txt'); Reset(F); FillChar(s,255,' ');while not eof(F) do begin ReadLn(F,c); if length©<length(s) then s:=c end;WriteLn(length(s)); WriteLn(s); ReadLnend.

БОЛЬШОЕ спасибо, Тролль вы очень мне помогли!!!

Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Тролль, помогите пожалуйста решить еще одну задачку в Pascal :) !!!

-1, при а<0

Написать подпрограмму sign(a), которая вычисляет значение по следующей формуле: Sign(a)={ 0, при a=0

1, при a>0

Вычислить с помощью нее значение выражения Z:=sign(x)+sign(y)+sign(x+y).

Ссылка на комментарий
Поделиться на другие сайты

pooint:

function Sign(a:real):integer; begin Sign:=byte(a>0)-byte(a<0) end;

var x,y,z:real;

begin

Write('X=');ReadLn(x); Write('Y=');ReadLn(y);

z:=Sign(x)+Sign(y)+Sign(x+y); Writeln('Z=',z);

ReadLn

end.

Другой вариант функции Sign (оба работают одинаково, второй более стандартное для начинающих длинное решение):

function Sign(a:real):integer; begin if a=0 then Sign:=0 else if a>0 then Sign:=1 else Sign:=-1 end;

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Помогите решить задачи на С:

1. Написать программу для хранения в битовом поле информации о конфигурации компьютера. Например: Корпус AT – 0, ATX – 1; Видео на борту – 0, карта – 1 и так далее.

2. Написать программу учета сдачи зачетов при помощи битовых полей. Структура содержит поля: фамилия, группа, зачеты (битовое поле). Предусмотреть вывод списков сдавших все зачеты и должников по группам и в алфавитном порядке.

3. Создать битовое поле для хранения времени (часы, минуты, секунды, миллисекунды). Написать функции для установки и получения времени в(из) битовое(-го) поле(-я).

Ссылка на комментарий
Поделиться на другие сайты

Программа вычесления квадратного корня из числа введенного с клавиатуры.Исключите вычесления из отрицательных чисел и нуля.

С нулём всё понятно.

А вот как поставить условие,чтоб исключить вычесления из отрицательных чисел не могу.

Подскожите пожалуста.

Ссылка на комментарий
Поделиться на другие сайты

Fantom:

На Паскале?

var a:real; begin  Write('Введите число: '); ReadLn(a); if a>0 then WriteLn(sqrt(a):20:8); if a=0 then WriteLn('Корень есть, но запрещено вычислять'); if a<0 then WriteLn('Действительного корня нет');ReadLnend.
Ссылка на комментарий
Поделиться на другие сайты

Charlie Rat:

Это все беллетристика, то есть придумывание и запись в операторах ввода и вывода вопросов и ответов, программировать тут практически нечего.

Просто покажу как пример работы с битовыми полями решение первой задачи ("Написать программу для хранения в битовом поле информации о конфигурации компьютера"), выдумывая параметры конфигурации на ходу:

# include <stdio.h>

main()

{

struct {unsigned a:1,b:1,c:1;} s;

printf("\npower unit: no ATI / ATI (0/1): ");

s.a=getch()-48; printf("%u",s.a);

printf("\nprosessor: Intel/AMD (0/1): ");

s.b=getch()-48; printf("%u",s.b);

printf("\nvideomemory: out/in (0/1): ");

s.c=getch()-48; printf("%u",s.c);

printf("\npower unit: %s",s.a?"ATI":"no ATI");

printf("\nprocessor: %s",s.b?"AMD":"Intel");

printf("\nvideomemory: %s",s.c?"in":"out");

getch();

}

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Тролль, помогите в решении задачки на си!

1. Описать структуру с именем NOTE, содержащую следующие поля:

• NAME — фамилия, имя;

• TELE — номер телефона;

• BDAY — день рождения (массив из трех чисел).

2. Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив BLOCKNOTE, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;

• вывод на экран информации о человеке, чья фамилия введена с клавиатуры;

• если такого нет, выдать на дисплей соответствующее сообщение.

Заранее благодарен!

Ссылка на комментарий
Поделиться на другие сайты

aliner88:

#include <stdio.h>

#include <string.h>

main()

{

struct NOTE{char NAME[20],TELE[15];unsigned BDAY[3];}BLOCKNOTE[8],T;

int i,j,k=0; char Name[20];

for(i=0;i<8;i++)

{

printf("\nName? "); gets(BLOCKNOTE.NAME);

if(strlen(BLOCKNOTE.NAME)==0)break;

printf("Phone number? "); gets(BLOCKNOTE.TELE);

printf("Birthday (YYYY MM DD)? ");

for(j=0;j<3;j++)scanf("%u",&BLOCKNOTE.BDAY[j]);

gets(Name); k++;

};

for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)

if(strncmp(BLOCKNOTE[j].TELE,BLOCKNOTE[j+1].TELE,3)>0)

{T=BLOCKNOTE[j];BLOCKNOTE[j]=BLOCKNOTE[j+1];BLOCKNOTE[j+1]=T;}

printf("\nName for the seach? "); gets(Name); j=0;

for(i=0;i<k;i++)if(!strncmp(Name,BLOCKNOTE.NAME,strlen(Name)))

{

printf("\nName: %s \nPhone number: %s \nBirthday: %u %u %u\n\n",

BLOCKNOTE.NAME, BLOCKNOTE.TELE,

BLOCKNOTE.BDAY[0],BLOCKNOTE.BDAY[1],BLOCKNOTE.BDAY[2]);j=1;

};

if(!j)printf("No such person!\n\n");

getch();

}

Фамилия и имя вводятся в одной строке, разделяются пробелом (или как угодно). Ввод пустой фамилии человека (то есть нажатие сразу Enter) прекращает дальнейший запрос информации о людях и выводится запрос на фамилию людей, данные о которых нужно найти. Если есть несколько человек с такой фамилией, будут выведены данные обо всех в порядке сортировки по первым трем цифрам телефонного номера, как указано в задании. Если людей с заданной фамилией нет, будет выведено сообщение об этом.

Ссылка на комментарий
Поделиться на другие сайты

Здрастье всем я хочу составить одну прогу на ТП а у меня не получается помогите пожалуйста! В общем так: В матрице К размером m*n найти в каждом столюце произведения отрицательных элементов и колличество нулевых элементов в матрице. :bye1:

Ссылка на комментарий
Поделиться на другие сайты

Сифон:

var k:array[1..20,1..20]of real; q:real; i,j,p,m,n:integer; b:boolean; beginWrite('m='); ReadLn(m); Write('n='); ReadLn(n);for i:=1 to m do   for j:=1 to n do begin Write('k[',i,',',j,']='); ReadLn(k[i,j]) end;WriteLn('Results:'); p:=0;for i:=1 to m do  begin  q:=1; b:=false;  for j:=1 to n do  begin   if k[i,j]=0 then p:=p+1; if k[i,j]<0 then begin b:=true; q:=q*k[i,j] end  end;  Write('product of the negative elements [',i,']=');   if b then WriteLn(q:10:4) else WriteLn('	none');  end;WriteLn('number of zero-elements of the matrix=',p:4); ReadLnend.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Обращаюсь к всем неравнодушным, помогите разобраться вот с такой програмкой, сам не розберусь.

Написать программу на С/С++ которая для текстового файла делает его форматирование по ширине. Параметры форматирования должны задаватся консольно ( с клавиатуры ). Заранее благодарен.

P.S. Есть програмка аналогичная, но написанная на Delphi

!

Предупреждение:

Во-первых, не надо создавать две одинаковые темы. Во-вторых, надо замечать "важные" темы, их не просто так наверх повесили. Вторую тему удалил, темы соединил, автору штраф за кросспостинг и игнорирование "важных" тем

Изменено пользователем Ray
Ссылка на комментарий
Поделиться на другие сайты

Привет всем!!!! помогите пожалуйста.... программирование на турбо паскале было пол года назад! а сейчас снова началось, но ток теперь на С++. Задали курсовик на паскале, а я же ничего не помню.... :g: Скока в нете не искал, ничего подходящего не нашел... Тема такая: " составить программу обучения по переводу чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную системы. программа должна предлагать двоичное чилсо, выбранное с помощью датчика случайных чисел,обучающийся должен назвать это число, а программа дать ответ о правильности ответа обучающегося или его ошибке, в случае ошибки вывести правильный ответ." Помогите, пожалуйста. очень надо!!!!!!!!!!!!

P.S. в начале программы должны присутствовать элементы меню, типа : 1 разработчик, 2 помощь, 3 начать обучение, 4 о программе, 5 выход....

Ссылка на комментарий
Поделиться на другие сайты

sakol18:

теперь на С++. Задали курсовик на паскале
Соберись с мыслями... На C++ или на Паскале?
предлагать двоичное чилсо, выбранное с помощью датчика случайных чисел,обучающийся должен назвать это число, а программа дать ответ о правильности ответа
Обучение чтению? :g:
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...