Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 09.04.2012, 00:59   #1 (permalink)
lastAtlant
Новичок
 
Регистрация: 09.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа на Си

Всем привет, я тут новичок, как и в программировании. Недавно записался на курсы по Си, и после первой практики преподаватель сразу задал несколько задач на дом. Опыта у меня мало, а точнее почти никакого,помогите написать код для программы , хотя бы для одной из них, я знаю что там нужно применить циклы , а также if else, но каким образом сложно представить
Я думаю вам они будут несложны и даже интересны:

Задача 1
Написать программу имитирующую работу высотомера бомбы. Бамба падает с высоты Н, которая которая задается пользователем. В любой момент времени можно узнать пройденное расстояние по формуле
L = g(t*t)/2, где g = 9.81 m/(c*c)
Высотомер бомбы срабатывает раз в секунду и выводит на терминал текущее значение высоты над поверхностью земли h.

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

Задача 3
Программа очищающая строку от лишних пробелов. Лишними считаются пробелы в начале строки. и в конце строки и пробелы между словами, если их количество больше 1.
Замечание: Сдесь запрещено создавать дополнительные массивы, т.е. неоходимо стремится к экономии памяти.

Если поможете хотя бы с одной из них буду очень признателен, буду зазбираться в коде
lastAtlant вне форума   Ответить с цитированием

Старый 09.04.2012, 00:59
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Темы которые подобны вашей уже были на нашем форуме

Программа на С
Программа на C++

Старый 09.04.2012, 10:32   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,952
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от lastAtlant Посмотреть сообщение
Задача 2 Написать программу представляющую символы в массиве согласно правилу: сначала идут латинские буквы, потом цифры. Строка задается в коде программы в виде случайной последовательности букв и цифр. Пользоваться дополнительными массивами нельзя. Замечание: сортировка в данной программе не применима в виду ее трудоемкости. Нужно использовать группировку элементов массива.
Заинтересовала задачка, особенно утверждение о неприменимости сортировки ввиду ее запредельной (очевидно, для преподавателя) трудоемкости. Нарисовал программку с использованием слегка видоизмененного пузырька, ни малейшей трудоемкости при том не обнаружив. Но увы - на Си я не пишу, только на Паскале. Если заинтересует в плане алгоритма, Паскаль-код могу выложить.
Миниатюры
sort.jpg  
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 09.04.2012, 13:01   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Цитата:
Сообщение от lastAtlant Посмотреть сообщение
группировку элементов массива
Никогда раньше не встречал...
Что это за метод?
kreol вне форума   Ответить с цитированием
Старый 09.04.2012, 16:00   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,952
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от kreol Посмотреть сообщение
Никогда раньше не встречал... Что это за метод?
Я тоже не в курсе, но альтернативный пузырьку метод придумал - может быть, это оно? Суть: шлёпаем по массиву слева направо до первой цифры. Фиксируем ее номер (I). Дальше, стартуя от I, двигаемся вправо до первой буквы, пусть ее позиция (J). Меняем местами элементы I и J. Возвращаемся на позицию I и шлепаем дальше, и так продолжаем до тех пор, пока правее очередной цифры не обнаружится ни одной буквы.
Можно и так. Надо будет попробовать.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 09.04.2012, 16:30   #5 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Эмм если я правильно понял, то стартовать от I+1
Ну и вроде от того же метода пузырька не сильно отличается))
Хотя чем метод пузырька сложен и правда не понятно
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 09.04.2012, 23:25   #6 (permalink)
lastAtlant
Новичок
 
Регистрация: 09.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

интересно конечно читать как вы эту задачку обсуждаете, но скиньте пожалуйста код чтобы я хоть посмотрел как это вообще получается
а на паскале я не понимаю я только вот Си начал изучать
lastAtlant вне форума   Ответить с цитированием
Старый 10.04.2012, 08:23   #7 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Для первой задачи надо провести табулирование функции с шагом 1 и интервалом от Н до нуля. Если время будет вечером код напишу .
Chervones вне форума   Ответить с цитированием
Старый 12.04.2012, 01:07   #8 (permalink)
lastAtlant
Новичок
 
Регистрация: 09.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

хорошо , спасибо
lastAtlant вне форума   Ответить с цитированием
Старый 13.04.2012, 00:44   #9 (permalink)
lastAtlant
Новичок
 
Регистрация: 09.04.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Chervones Посмотреть сообщение
Для первой задачи надо провести табулирование функции с шагом 1 и интервалом от Н до нуля. Если время будет вечером код напишу .


если не сложно напиши плиз код
lastAtlant вне форума   Ответить с цитированием
Старый 17.04.2012, 19:06   #10 (permalink)
Chervones
Novel user
 
Аватар для Chervones
 
Регистрация: 16.04.2010
Сообщений: 568
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1149
По умолчанию

Вот код на прошлой неделе не было времени:
Код:
#include "stdafx.h"                             //подключаем стандартные библиотеки
#include "math.h"                              //подключаем стандартные библиотеки

void main()
{
     float t,b,h,x,y;                                            //вводим переменные
     printf("Введите a,b,h -->");                           //Спрашиваем у пользователя ввести необходимые переменные
     scanf("%f %f",&b,&h);                                  //Считываем значения двух переменных
         t=sqert((2*b)/9.81);                                //Рассчитываем общее время падения
             for(x=t;x>=0;t-=h)                               //Запускаем массив, где время больше нуля с шагом 1 сек.
                {
                 y=9.81*((x*x)/2);                           //Вводим нашу формулу
                 printf("x=%f --> y=%f \n",x,y);          //Выводим на экран значения высоты и времени
                 }
    clrscr()                                                       //Очищаем  экран и ждём нажатия кнопкипользователем
    getch()
}

возможно с ошибками

Последний раз редактировалось Chervones; 17.04.2012 в 19:16
Chervones вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.