Тролль Опубликовано 9 июля, 2011 Жалоба Поделиться Опубликовано 9 июля, 2011 (изменено) Irina20 #include<stdio.h>#include<string.h>int main(){char t[255]=" ",s[255]=""; int i,n; puts("Stroka?"); gets(t+1); for(i=strlen(t),t[i-1]=' ';i>=0;--i) {if(t[i]>' ' && t[i+1]<=' ')n=i;if(t[i]<=' ' && t[i+1]>' ')strncat(s,t+i,n-i+1);}strcat(s,"."); puts(s+1); getchar(); return 0;} Изменено 9 июля, 2011 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
(Lucky) Опубликовано 17 августа, 2011 Жалоба Поделиться Опубликовано 17 августа, 2011 Доброго времени суток.Помогите пожалуйста с программой на языке С. Создать статический целочисленный массив A[N] и заполнить его случайными значениями в диапазоне от 0 до N. Создать второй, динамический массив и выбрать в него из массива A[N] все элементы, значения которых больше, чем среднеарифметическое значение элементов этого массива. Количество элементов второго массива должно точно равняться числу элементов массива A[N] больших, чем среднеарифметическое значение элементов этого массива. Зараннее спасибо) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 августа, 2011 Жалоба Поделиться Опубликовано 18 августа, 2011 (Lucky) #include <stdlib.h>#include <stdio.h>#include <time.h>#define n 20int main(){int i,j,m,a[n],*v; float s;srand(time(NULL)); for(i=0;i<n;i++)a[i]=rand()%(n+1);for(i=0;i<n;i++)printf("%4d",a[i]); printf("\n");s=0; for(i=0;i<n;i++)s+=a[i]; s/=n; m=0; for(i=0;i<n;i++)if(a[i]>s)m++;if((v=(int*)malloc(sizeof(int)*m))==NULL){printf("Out of memory!\n");exit(1);}j=0; for(i=0;i<n;i++)if(a[i]>s)v[j++]=a[i];for(i=0;i<m;i++)printf("%4d",v[i]); printf("\n");free(v); getchar(); return 0;} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
(Lucky) Опубликовано 18 августа, 2011 Жалоба Поделиться Опубликовано 18 августа, 2011 большое спасибо Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
(Lucky) Опубликовано 24 августа, 2011 Жалоба Поделиться Опубликовано 24 августа, 2011 Всем привет,может кто-нибудь посоветовать литературу по языку С,а так же примеры с массивами и функциями? Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 11 сентября, 2011 Жалоба Поделиться Опубликовано 11 сентября, 2011 Помогите решить в Паскале 1.Найти периметр и площадь треугольника по координатам его вершин. 2.По длинами сторон треугольника определить - треугольник равнобедренный, равносторонний или произвольный. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 сентября, 2011 Жалоба Поделиться Опубликовано 11 сентября, 2011 Riki_Tiki_Tavi 1.Найти периметр и площадь треугольника по координатам его вершин. var x1,x2,x3,y1,y2,y3,a,b,c,p,s:real;begin write('x1 y1 x2 y2 x3 y3: '); readln(x1,y1,x2,y2,x3,y3); a:=sqrt(sqr(x1-x2)+sqr(y1-y2)); b:=sqrt(sqr(x2-x3)+sqr(y2-y3)); c:=sqrt(sqr(x3-x1)+sqr(y1-y3)); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('p=',p:0:2,' s=',s:0:2); readln end. По длинами сторон треугольника определить - треугольник равнобедренный, равносторонний или произвольный var a,b,c:real; beginwrite('a b c ? '); readln(a,b,c); if(a+b>c)and(b+c>a)and(a+c>b)then if(a=b)and(b=c)then writeln('It is an equilateral triangle') else if(a=b)or(a=c)or(b=c) then writeln('It is an isosceles triangle') else writeln('It is a scalene triangle')else writeln('It is not a triangle'); readlnend. Данные вводятся через пробелы. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 24 сентября, 2011 Жалоба Поделиться Опубликовано 24 сентября, 2011 Помогите пожалуйста на Паскале решить Написать программу, по которой на экран выводится словесное запись введенного целого двузначного числа. например, "-35: Минус тридцать пять". И расскажите пожалуйста что тут делается в программе(постепенно какие где функции и тд.) Var A,B,C: char; begin writeln('a-, b-'); readln(a,b); if ord(b)<ord(a) then begin b:=a; a:=b; end; if abs(ord(a)-ord(b))>=2 then begin writeln(succ(a)); readln; end else if (ord(b)=90) or (ord(b)=122) then begin writeln(pred(a)); readln; end else begin writeln(succ(b)); readln; end; end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 24 сентября, 2011 Жалоба Поделиться Опубликовано 24 сентября, 2011 (изменено) Riki_Tiki_Tavi Написать программу, по которой на экран выводится словесное запись введенного целого двузначного числа const a:array[0..19]of string[19]=('','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen');b:array[2..9]of string[19]=('twenty ','thirty ','fourty ','fifty ','sixty ','seventy ','eighty ','ninety ');var i:integer; s:string; begin readln(i); s:=''; if i<0 then s:='minus '; i:=abs(i);case i of 0: s:='null'; 1..19: s:=s+a[i]; 20..99: s:=s+b[i div 10]+a[i mod 10] end; writeln(s); readln end. Для простоты словесную запись писал на английском, чтобы не переключаться. Надеюсь, твоя девушка перепишет числительные с английского на русский при надобности. P.S. Подправил - слегка увеличил размер строк на случай перевода на русский, так как в русском языке названия чисел длиннее. Что делается в приведенной тобой программе, понятия не имею, кроме того, что временами встречается легкий, возможно безвредный, бред вроде begin b:=a; a:=b; end; Изменено 24 сентября, 2011 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Dolli1 Опубликовано 30 сентября, 2011 Жалоба Поделиться Опубликовано 30 сентября, 2011 (изменено) Доброго времени суток! Суть вопроса: Есть скриптик (внизу прилагается), написан на питоне. Питон на компе установлен. Но для использования этого скрипта мне приходится всякий раз вводить в командную строку строчку примерно такого вида: С:\python27\python.exe С:\python27\rec.py С:\photo\картинка.jpg C:\photo\new\1-картинка.jpg Не мог бы кто-нибудь изобразить для меня что-то вроде программулины, которая бы позволяла вызывать питона, открывать скрипт, позволить мне выбрать папку которую этот скрипт должен обработать, указать папку назначения для нового файла и нажать кнопку пуск. При этом, как вы видите из вышеприведённой строки файл "картинка.jpg" после обработки его скриптом rec.py переименовывается и кладётся в другую папку с новым именем "1-картинка.jpg". То есть, по большому счёту, насколько я понимаю, эта программка должна считывать имена файлов в исходной папке и под каждый из них вызывать питона и скрипт, переименовывать и складывать в папку назначения. Ну, в общем, как-то так, наверное... Буду очень признательна за такую штуку! В базе 8 173 файла и забивать каждый из них в командную строку, сами понимаете - жуть на месяц! i Уведомление: Добавлю собственную просьбу помочь... rec.zip rec.zip Изменено 30 сентября, 2011 пользователем Yezhishe Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 3 октября, 2011 Жалоба Поделиться Опубликовано 3 октября, 2011 Всем привет) Ребята помогите,есть вот задача Запрограммировать проверку тестового задания на умножение натуральных чисел в пределах сотни. Задача подать в форме выбора одного из нескольких предложенных вариантов ответов. Для каждого из вариантов предусмотреть вывод на экран соответствующего объяснения program Project4; {$APPTYPE CONSOLE} uses SysUtils; var x,y,a,b,c,d:Integer; begin Write('x,y-'); Readln(x,y); a:=x*y; b:=(x-1)*y; c:=x*(y-2); Writeln('warianty:1)',a,', 2)',b,', 3)',c); Write('Wash wybir- ');Readln(d); case d of 1:Writeln('prawylno'); 2:Writeln('ne prawylno'); 3:Writeln('ne prawylno'); else Writeln('takogo warianta ne isnye'); end; Readln; end. end. помогите сделать так чтобы ответ в задаче правильный был постоянно не а, а рандомно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 октября, 2011 Жалоба Поделиться Опубликовано 4 октября, 2011 Riki_Tiki_Tavi помогите сделать так чтобы ответ в задаче правильный был постоянно не а, а рандомноИзменить таблицу умножения я никак не могу. Сделать, чтобы выдавался правильный результат умножения, можно. Замени конец программы, начиная с case, на if a=d then Writeln('prawylno') else Writeln('ne prawylno');Readln;end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 10 октября, 2011 Жалоба Поделиться Опубликовано 10 октября, 2011 Riki_Tiki_TaviИзменить таблицу умножения я никак не могу. Сделать, чтобы выдавался правильный результат умножения, можно. Замени конец программы, начиная с case, на if a=d then Writeln('prawylno') else Writeln('ne prawylno');Readln;end. Извините, но вы не правильно меня поняли, мне нужно чтобы ответ был рандомно.У меня в программе правильный ответ всегда на 1 стоит, а я хочу чтобы оно постоянно менялось, то есть, то на 2, то на 3 вариант.Функция рандомайз. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 октября, 2011 Жалоба Поделиться Опубликовано 10 октября, 2011 (изменено) Riki_Tiki_Tavi Вообще-то я не вижу, зачем при проверке знания таблицы умножения подсказывать ответы. И почему, если уж так нужны подсказки, не взять в качестве неверных ответов просто случайные числа, не совпадающие с правильным ответом. Но сделаем, как просят: program Project4;{$APPTYPE CONSOLE}uses SysUtils;var x,y,i,j,d:Integer; a:array[1..3]of Integer;beginrandomize; Write('x y: '); Readln(x,y);a[1]:=x*y; a[2]:=(x-1)*y; a[3]:=x*(y-2);for i:=3 downto 1 do begin j:=1+random(i); d:=a[j];a[j]:=a[i];a[i]:=d end;Writeln('warianty:1) ',a[1],', 2) ',a[2],', 3) ',a[3]);Write('Wash wybir warianta: '); Readln(d);if d in[1..3] then if a[d]=x*y then Writeln('prawylno') else Writeln('neprawylno')else Writeln('takogo warianta ne isnye');Readln end. Оффтоп Я еще отлично помню, как сдавал своей учительнице, Татьяне Васильевне, таблицу умножения в два приема - в первый раз я выучил только половину ответов, а недостающие досчитывал на ходу, скажем, 7*8 равно 7*7 (это, я помнил, 49) плюс еще 7... Татьяна Васильевна долго меня мучила, потом сказала, что не понимает, знаю я таблицу умножения или нет - отвечать-то я отвечал, но с большим запаздыванием, будто с потолка читал - и отправила меня доучивать проклятую таблицу к завтрашнему дню без отметки. К следующему дню я, конечно, ее доучил :) Изменено 10 октября, 2011 пользователем Тролль 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 17 октября, 2011 Жалоба Поделиться Опубликовано 17 октября, 2011 (изменено) Здраствуйте. Спросить хочу не так о програме, а скорее по алгоритму. Стандартная кодировка Хаффмана и еще какого-то типа. Для сообщения с 4 символов в алфавите выглядит так: вероятности код 0,1 0 00,25 1 0,3 0 10,35 1 Тоисть разбиваем вероятности так, что б приблизительно равно было в обеих частях, етим групам проставляем 0,1 . и продолжаем так пока каждый символ не получит код. В приведенном случае коды символов: 00,01,10,11. В задании нужно написать программу для обработки большого текста и кодировки всех символов в нем. Собственно загвоздка в реализации самого кодирования, используемые структуры и тп. Исходные данные - строка со всеми символами алфавита текста и масив вероятностей. Вероятности посортированы по возрастанию. Изменено 17 октября, 2011 пользователем core_st Ссылка на комментарий Поделиться на другие сайты Поделиться
Serty Опубликовано 19 октября, 2011 Жалоба Поделиться Опубликовано 19 октября, 2011 (изменено) Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и обратно. Программа должна предлагать десятичное (16-ричное) число, выбранное с помощью датчика случайных чисел, обучающийся – назвать это число в 16-ричной (десятичной) системе счисления. Причем, должен быть контроль за временем на размышление. Помогите, пожалуйста... Составить на С/С++ или С# ! Предупреждение:Размещение в разных темах одного и того же поста (кросспостинг) ведёт не к ускорению решения вопроса, а - к штрафу. Не делайте так больше, пожалуйста... Изменено 19 октября, 2011 пользователем Yezhishe Ссылка на комментарий Поделиться на другие сайты Поделиться
Serty Опубликовано 20 октября, 2011 Жалоба Поделиться Опубликовано 20 октября, 2011 (изменено) Составить очень срочно надо! А то ничего не понятно.. Изменено 20 октября, 2011 пользователем Serty Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 22 октября, 2011 Жалоба Поделиться Опубликовано 22 октября, 2011 (изменено) Serty #include<time.h>#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>float in_time(char *s,int nm,float tm){clock_t in; char c; int k=0; float t; in=clock(); while(1){if((t=float(clock()-in)/float(CLOCKS_PER_SEC))>tm)break;if(kbhit()){c=getch(); putchar©; if(c==13)break; if(k<nm)s[k++]=c;}}while(k<nm)s[k++]=0; return t;}int main(){int q=0,delay=20; long k,m; srand(time(NULL)); char p[10]; float f; printf("for exit enter 0\n\n"); while(1){k=rand()%900+100; q=1-q; if(q)printf("dec->hex: %ld\n",k); else printf("hex->dec: %lX\n",k);f=in_time(p,8,delay); if(*p=='0')break;if(q){sscanf(p,"%lX",&m); if(m==k)printf("\ntrue!"); else printf("\nIt must be %lX",k);}else {sscanf(p,"%ld",&m); if(m==k)printf("\ntrue!"); else printf("\nIt must be %ld",k);}printf("\n\n\n");}} Выдает попеременно задачки на перевод из dec в hex и обратно. Числа для перевода выбираются случайными от 100 до 999. Время ожидания ввода ответа можно изменить изменением значения delay. При вводе после ввода переведенного числа можно нажать сразу Enter, чтобы не ждать. Программа зациклена, выход вводом 0. Проверил на Dev-C++. Возможно, в VS kbhit надо заменить на _kbhit. Изменено 22 октября, 2011 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 24 октября, 2011 Жалоба Поделиться Опубликовано 24 октября, 2011 Кто может на паскале напишите программу Посчитать: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 24 октября, 2011 Жалоба Поделиться Опубликовано 24 октября, 2011 (изменено) Riki_Tiki_Tavi var k,m,n:integer; x,s:real;begin write('x n ? '); readln(x,n); s:=0; for k:=1 to n do for m:=k to n do s:=s+(x+k)/m; writeln(s:0:4); readln end. Что-то у тебя в прошлом году были задания студента, а в этом - восьмиклассницы... Изменено 24 октября, 2011 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 24 октября, 2011 Жалоба Поделиться Опубликовано 24 октября, 2011 Riki_Tiki_Tavi var k,m,n:integer; x,s:real;begin write('x n ? '); readln(x,n); s:=0; for k:=1 to n do for m:=k to n do s:=s+(x+k)/m; writeln(s:0:4); readln end. Что-то у тебя в прошлом году были задания студента, а в этом - восьмиклассницы... Не отрицаю))Спасибо тебе) Ссылка на комментарий Поделиться на другие сайты Поделиться
axel78 Опубликовано 25 октября, 2011 Жалоба Поделиться Опубликовано 25 октября, 2011 (изменено) Привет всем если таковые есть. Помогите подправить программку. В нее встроено ограничение работы по дате. Т.е. 30.08.11 он прекратила работу. Прогу могу выслать на емайл. ! Предупреждение: Внимательно читаем Правила Форума. Особое внимание можно уделить п.4 Запретительной части. Изменено 25 октября, 2011 пользователем Yezhishe Ссылка на комментарий Поделиться на другие сайты Поделиться
Serty Опубликовано 25 октября, 2011 Жалоба Поделиться Опубликовано 25 октября, 2011 Serty #include<time.h>#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>float in_time(char *s,int nm,float tm){clock_t in; char c; int k=0; float t; in=clock(); while(1){if((t=float(clock()-in)/float(CLOCKS_PER_SEC))>tm)break;if(kbhit()){c=getch(); putchar©; if(c==13)break; if(k<nm)s[k++]=c;}}while(k<nm)s[k++]=0; return t;}int main(){int q=0,delay=20; long k,m; srand(time(NULL)); char p[10]; float f; printf("for exit enter 0\n\n"); while(1){k=rand()%900+100; q=1-q; if(q)printf("dec->hex: %ld\n",k); else printf("hex->dec: %lX\n",k);f=in_time(p,8,delay); if(*p=='0')break;if(q){sscanf(p,"%lX",&m); if(m==k)printf("\ntrue!"); else printf("\nIt must be %lX",k);}else {sscanf(p,"%ld",&m); if(m==k)printf("\ntrue!"); else printf("\nIt must be %ld",k);}printf("\n\n\n");}} Выдает попеременно задачки на перевод из dec в hex и обратно. Числа для перевода выбираются случайными от 100 до 999. Время ожидания ввода ответа можно изменить изменением значения delay. При вводе после ввода переведенного числа можно нажать сразу Enter, чтобы не ждать. Программа зациклена, выход вводом 0. Проверил на Dev-C++. Возможно, в VS kbhit надо заменить на _kbhit. А можно ту же самую программку, только на C#? Заранее благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
temich5000 Опубликовано 25 октября, 2011 Жалоба Поделиться Опубликовано 25 октября, 2011 помогите пожалуйста доделать мою программу на си++ Нужно чтобы в переменную b невозможно было ввести символ... Code #include "stdafx.h"#include <conio.h>#include <stdio.h>int _tmain(int argc, _TCHAR* argv[]){char zn,q;int a,b;float fa, fb;//float c;bool f = false, f1,n = true;do{do{printf("Vvedite a v diapazone OT -2 147 483 648 DO 2 147 483 647\n ");flushall();scanf("%f%c",&fa,&q);if (q!=10) {printf("Neverno!! "); n = false;}else n = true;}while ((n == false) || fa < -2147483648.0 || fa > 2147483647.0);a = fa;do{printf("Vvedite b v diapazone OT -2 147 483 648 DO 2 147 483 647\n");flushall();scanf("%f%c",&fb,&q);if (q!=10) {printf("Neverno!! "); n = false;}else n = true;}while ((n == false) || fb < -2147483648.0 || fb > 2147483647.0);b = fb;do{do{printf("Vvedite operaciu: ");flushall();scanf("%c%c",&zn,&q);if (q!=10) {printf("Neverno!! "); n = false;}else n = true;}while (n == false);switch(zn){case '+': {float c = (float)a + (float)b;if ((c < -2147483648.0) || (c > 2147483647.0)){printf("Perepolnenie!\n");f1=false;f=false;}else{printf("%i \n",(int)c); f = true; f1 = true;}break;}case '-': {float c = (float)a - (float)b;if ((c < -2147483648.0) || (c > 2147483647.0)) {printf("Perepolnenie!\n"); f1=false; f=false; }else{printf("%i \n",(int)c); f = true; f1 = true;}break;}case '*': {float c = (float)a * (float)b;if ((c < -2147483648.0) || (c > 2147483647.0)){printf("Perepolnenie!\n"); f1=false; f=false;}else{printf("%i \n",(int)c); f = true; f1 = true;}break;}case '/': {float c = 0.0;if (b!=0) {c = (float) a / (float)b;if ((c < -2147483648.0) || (c > 2147483647.0)){printf("Perepolnenie!\n"); f1 = false; f = false;}else{printf("%i \n",(int)c); f = true; f1 = true;}break;}else printf("Delenie na 0!!!\n"); f = true; f1 = false; break;}default: {printf("Neverno!!! "); f = false; flushall();}}}while(f == false);}while(f1 == false);_getch();return 0; } Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 октября, 2011 Жалоба Поделиться Опубликовано 25 октября, 2011 temich5000 Ну, функции scanf безразлично, что ты там ввел, символ или ежа в сапогах, она берет биты по указанному ей адресу и интерпретирует их как код числа. Так что если ты хочешь, чтобы в переменную b невозможно было ввести символ, ты должен сам разбираться, что там ввели. С - не Паскаль. Как это можно сделать: вводишь строку, а потом разбираешься, то в ней или не то. Ниже - кусок кода для твоей программы, оформленный как отдельная программка для тестирования его работы. #include <stdio.h>int _tmain(){char q; float fb; int b; char s[20];while(1){scanf("%s",s); if(s[0]>='+' && s[0]<='9')break; else printf("Error! Once more!\n");}sscanf(s,"%f%c",&fb,&q);b = fb;printf("%d %c",b,q); getchar(); getchar();} Вводится строка, затем проверяется, начинается ли она чем-то годящимся как начало числа, если да, то мы выходим на продолжение работы и там преобразуем ее в нужные нам число и символ, если нет, с возмущенными воплями возвращаемся обратно. Serty "А можно ту же самую программку, только на C#?" Тут, к сожалению, не могу помочь, C# у меня не установлен, только Dev-C++ 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти